summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-01-08 23:41:20 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-01-08 23:41:20 +0000
commit5f3537a700d1183ede89e215b0f1ac1b80f4ff3e (patch)
treed7be7125a302de8f8b0d609a7ba159180fd45ffa
parentfd5495fc2c2e7609013554361699da69788a716f (diff)
parent4a33fdc4f2a94fdb90e60d8a1c7aa04fe92cc21f (diff)
Merge "WifiNetworkFactory: Avoid unnecessary copy of incoming request"
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkFactory.java2
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java40
2 files changed, 19 insertions, 23 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java
index 27e0a142a..3d034076f 100644
--- a/service/java/com/android/server/wifi/WifiNetworkFactory.java
+++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java
@@ -582,7 +582,7 @@ public class WifiNetworkFactory extends NetworkFactory {
setupForActiveRequest();
// Store the active network request.
- mActiveSpecificNetworkRequest = new NetworkRequest(networkRequest);
+ mActiveSpecificNetworkRequest = networkRequest;
WifiNetworkSpecifier wns = (WifiNetworkSpecifier) ns;
mActiveSpecificNetworkRequestSpecifier = new WifiNetworkSpecifier(
wns.ssidPatternMatcher, wns.bssidPatternMatcher, wns.wifiConfiguration,
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
index 8a8d52efe..9d7231398 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
@@ -1089,7 +1089,7 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
assertNotNull(networkRequestUserSelectionCallback);
// Now send another network request.
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
+ mWifiNetworkFactory.needNetworkFor(new NetworkRequest(mNetworkRequest), 0);
// Now trigger user selection to some network.
WifiConfiguration selectedNetwork = WifiConfigurationTestUtil.createOpenNetwork();
@@ -1699,8 +1699,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
// Send second request.
WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
+ NetworkRequest newRequest = new NetworkRequest(mNetworkRequest);
+ newRequest.networkCapabilities.setNetworkSpecifier(specifier2);
+ mWifiNetworkFactory.needNetworkFor(newRequest, 0);
mLooper.dispatchAll();
verify(mNetworkRequestMatchCallback).onAbort();
@@ -1709,15 +1710,13 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
verifyUnfullfillableDispatched(mConnectivityMessenger);
// Remove the stale request1 & ensure nothing happens.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1);
mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
verifyNoMoreInteractions(mWifiConnectivityManager, mWifiScanner, mClientModeImpl,
mAlarmManager, mNetworkRequestMatchCallback);
// Remove the active request2 & ensure auto-join is re-enabled.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
+ mWifiNetworkFactory.releaseNetworkFor(newRequest);
verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false);
}
@@ -1737,8 +1736,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
// Send second request.
WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
+ NetworkRequest newRequest = new NetworkRequest(mNetworkRequest);
+ newRequest.networkCapabilities.setNetworkSpecifier(specifier2);
+ mWifiNetworkFactory.needNetworkFor(newRequest, 0);
// Ignore stale callbacks.
WifiConfiguration selectedNetwork = WifiConfigurationTestUtil.createOpenNetwork();
@@ -1752,15 +1752,13 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
verifyUnfullfillableDispatched(mConnectivityMessenger);
// Remove the stale request1 & ensure nothing happens.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1);
mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
verifyNoMoreInteractions(mWifiConnectivityManager, mWifiScanner, mClientModeImpl,
mAlarmManager, mNetworkRequestMatchCallback);
// Remove the active request2 & ensure auto-join is re-enabled.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
+ mWifiNetworkFactory.releaseNetworkFor(newRequest);
verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false);
}
@@ -1776,8 +1774,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
// Send second request.
WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
+ NetworkRequest newRequest = new NetworkRequest(mNetworkRequest);
+ newRequest.networkCapabilities.setNetworkSpecifier(specifier2);
+ mWifiNetworkFactory.needNetworkFor(newRequest, 0);
verify(mNetworkRequestMatchCallback).onAbort();
verify(mWifiConnectivityManager, times(1)).setSpecificNetworkRequestInProgress(true);
@@ -1786,15 +1785,13 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
verify(mAlarmManager).cancel(mConnectionTimeoutAlarmListenerArgumentCaptor.getValue());
// Remove the stale request1 & ensure nothing happens.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1);
mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
verifyNoMoreInteractions(mWifiConnectivityManager, mWifiScanner, mClientModeImpl,
mAlarmManager, mNetworkRequestMatchCallback);
// Remove the active request2 & ensure auto-join is re-enabled.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
+ mWifiNetworkFactory.releaseNetworkFor(newRequest);
verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false);
}
@@ -1817,8 +1814,9 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
// Send second request.
WifiNetworkSpecifier specifier2 = createWifiNetworkSpecifier(TEST_UID_2, false);
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
+ NetworkRequest newRequest = new NetworkRequest(mNetworkRequest);
+ newRequest.networkCapabilities.setNetworkSpecifier(specifier2);
+ mWifiNetworkFactory.needNetworkFor(newRequest, 0);
verify(mWifiConnectivityManager, times(1)).setSpecificNetworkRequestInProgress(true);
verify(mWifiScanner, times(2)).getSingleScanResults();
@@ -1827,7 +1825,6 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
verify(mClientModeImpl, times(1)).disconnectCommand();
// Remove the connected request1 & ensure we disconnect.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier1);
mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
verify(mClientModeImpl, times(2)).disconnectCommand();
@@ -1835,8 +1832,7 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
mAlarmManager);
// Now remove the active request2 & ensure auto-join is re-enabled.
- mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier2);
- mWifiNetworkFactory.releaseNetworkFor(mNetworkRequest);
+ mWifiNetworkFactory.releaseNetworkFor(newRequest);
verify(mWifiConnectivityManager).setSpecificNetworkRequestInProgress(false);
@@ -2738,7 +2734,7 @@ public class WifiNetworkFactoryTest extends WifiBaseTest {
TEST_PACKAGE_NAME_1);
mNetworkRequest.networkCapabilities.setNetworkSpecifier(specifier);
- mWifiNetworkFactory.needNetworkFor(mNetworkRequest, 0);
+ mWifiNetworkFactory.needNetworkFor(new NetworkRequest(mNetworkRequest), 0);
validateUiStartParams(true);