Use mainline beta flag for NetworkAgent event queueing
Add `queue_network_agent_events_in_system_server` as a mainline beta
flag. This flag replaces the previous check for
`mQueueNetworkAgentEventsInSystemServer`, allowing the feature to be
controlled and enabled on all Android versions via mainline beta program.
Flag: com.android.tethering.mainline.beta.queue_network_agent_events_in_system_server
Test: atest ConnectivityCoverageTests --update-device \
--test-filter '.*NetworkAgent.*'
Test: atest ConnectivityCoverageTests --update-device \
--test-filter '.*Connectivity.*'
Fix: 428098184
Change-Id: I96b0443bd4c55c28d482349738bbdc4798f0c7f9
This commit is contained in:
parent
7e86ed2fb1
commit
c9890408bf
6 changed files with 50 additions and 13 deletions
|
|
@ -8,9 +8,16 @@ flag {
|
|||
bug: "287177081"
|
||||
}
|
||||
|
||||
flag {
|
||||
name: "queue_network_agent_events_in_system_server"
|
||||
namespace: "com_android_tethering"
|
||||
description: "Queue NetworkAgent events in system server"
|
||||
bug: "428098184"
|
||||
}
|
||||
|
||||
flag {
|
||||
name: "lnp_developer_opt_in"
|
||||
namespace: "com_android_tethering"
|
||||
description: "The flag enables the developer opt-in for LNP."
|
||||
bug: "421952907"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -166,7 +166,7 @@ import static com.android.server.connectivity.ConnectivityFlags.DELAY_DESTROY_SO
|
|||
import static com.android.server.connectivity.ConnectivityFlags.INGRESS_TO_VPN_ADDRESS_FILTERING;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.NAMESPACE_TETHERING_BOOT;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.QUEUE_CALLBACKS_FOR_FROZEN_APPS;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_AFTER_B;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.REQUEST_RESTRICTED_WIFI;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.SATISFIED_BY_LOCAL_NETWORK_METRICS;
|
||||
import static com.android.server.connectivity.ConnectivityFlags.WIFI_DATA_INACTIVITY_TIMEOUT;
|
||||
|
|
@ -2026,6 +2026,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
return SdkLevel.isAtLeastT() &&
|
||||
com.android.tethering.mainline.beta.Flags.bluetoothTetheringRandomizedAddress();
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether queue network agent events in the system server should be enabled.
|
||||
*/
|
||||
public boolean shouldQueueNetworkAgentEventsInSystemServer() {
|
||||
return com.android.tethering.mainline.beta.Flags
|
||||
.queueNetworkAgentEventsInSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
public ConnectivityService(Context context) {
|
||||
|
|
@ -2139,9 +2147,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
mUseDeclaredMethodsForCallbacksEnabled =
|
||||
mDeps.isFeatureNotChickenedOut(context,
|
||||
ConnectivityFlags.USE_DECLARED_METHODS_FOR_CALLBACKS);
|
||||
mQueueNetworkAgentEventsInSystemServer = mDeps.isAtLeastB()
|
||||
mQueueNetworkAgentEventsInSystemServer = (mDeps.isAtLeastB()
|
||||
&& mDeps.isFeatureNotChickenedOut(context,
|
||||
ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER);
|
||||
ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_AFTER_B))
|
||||
|| mDeps.shouldQueueNetworkAgentEventsInSystemServer();
|
||||
mSupportEarlyLinkPropertiesUpdateForVPN = mDeps.isFeatureNotChickenedOut(context,
|
||||
ConnectivityFlags.EARLY_LINK_PROPERTIES_UPDATE_FOR_VPN);
|
||||
// registerUidFrozenStateChangedCallback is only available on U+
|
||||
|
|
@ -15721,7 +15730,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||
switch (featureFlag) {
|
||||
case INGRESS_TO_VPN_ADDRESS_FILTERING:
|
||||
return mIngressToVpnAddressFiltering;
|
||||
case QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER:
|
||||
case QUEUE_NETWORK_AGENT_EVENTS_AFTER_B:
|
||||
case com.android.tethering.mainline.beta.Flags
|
||||
.FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER:
|
||||
return mQueueNetworkAgentEventsInSystemServer;
|
||||
case CLOSE_QUIC_CONNECTION:
|
||||
return mCloseQuicConnection;
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public final class ConnectivityFlags {
|
|||
public static final String QUEUE_CALLBACKS_FOR_FROZEN_APPS =
|
||||
"queue_callbacks_for_frozen_apps";
|
||||
|
||||
public static final String QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER =
|
||||
public static final String QUEUE_NETWORK_AGENT_EVENTS_AFTER_B =
|
||||
"queue_network_agent_events_in_system_server";
|
||||
|
||||
public static final String CLOSE_QUIC_CONNECTION = "close_quic_connection";
|
||||
|
|
|
|||
|
|
@ -2232,7 +2232,7 @@ public class ConnectivityServiceTest {
|
|||
case ConnectivityFlags.REQUEST_RESTRICTED_WIFI:
|
||||
case ConnectivityFlags.USE_DECLARED_METHODS_FOR_CALLBACKS:
|
||||
case ConnectivityFlags.QUEUE_CALLBACKS_FOR_FROZEN_APPS:
|
||||
case ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER:
|
||||
case ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_AFTER_B:
|
||||
case ConnectivityFlags.CLOSE_QUIC_CONNECTION:
|
||||
case ConnectivityFlags.EARLY_LINK_PROPERTIES_UPDATE_FOR_VPN:
|
||||
case ConnectivityFlags.CONSTRAINED_DATA_SATELLITE_METRICS:
|
||||
|
|
@ -2437,6 +2437,11 @@ public class ConnectivityServiceTest {
|
|||
public boolean shouldBluetoothTetheringUseRandomAddress() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldQueueNetworkAgentEventsInSystemServer() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
static class PermissionMonitorDependencies extends PermissionMonitor.Dependencies {
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ import android.os.Build
|
|||
import android.os.Process
|
||||
import android.util.Range
|
||||
import com.android.server.connectivity.ConnectivityFlags.EARLY_LINK_PROPERTIES_UPDATE_FOR_VPN
|
||||
import com.android.server.connectivity.ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER
|
||||
import com.android.server.connectivity.ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_AFTER_B
|
||||
import com.android.testutils.ConnectivityModuleTest
|
||||
import com.android.testutils.DevSdkIgnoreRule
|
||||
import com.android.testutils.DevSdkIgnoreRunner
|
||||
|
|
@ -112,7 +112,9 @@ class CSNetworkAgentTest : CSTest() {
|
|||
// QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER is disabled. That flag is enabled by default in
|
||||
// the CSTest.
|
||||
@ConnectivityModuleTest
|
||||
@FeatureFlags(flags = [Flag(QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER, false)])
|
||||
@FeatureFlags(flags = [Flag(QUEUE_NETWORK_AGENT_EVENTS_AFTER_B, false),
|
||||
Flag(com.android.tethering.mainline.beta.Flags
|
||||
.FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER, false)])
|
||||
@Test
|
||||
fun testEarlyLinkPropertiesUpdateForVPN() =
|
||||
testEarlyLinkPropertiesUpdate(TRANSPORT_VPN, expectEarlyLinkPropertiesUpdate = true)
|
||||
|
|
@ -121,7 +123,9 @@ class CSNetworkAgentTest : CSTest() {
|
|||
// QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER is disabled. That flag is enabled by default in
|
||||
// the CSTest.
|
||||
@ConnectivityModuleTest
|
||||
@FeatureFlags(flags = [Flag(QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER, false)])
|
||||
@FeatureFlags(flags = [Flag(QUEUE_NETWORK_AGENT_EVENTS_AFTER_B, false),
|
||||
Flag(com.android.tethering.mainline.beta.Flags
|
||||
.FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER, false)])
|
||||
@Test
|
||||
fun testEarlyLinkPropertiesUpdateForNonVPN() =
|
||||
testEarlyLinkPropertiesUpdate(TRANSPORT_WIFI, expectEarlyLinkPropertiesUpdate = false)
|
||||
|
|
@ -131,8 +135,10 @@ class CSNetworkAgentTest : CSTest() {
|
|||
// disabled. These flags are enabled by default in the CSTest.
|
||||
@ConnectivityModuleTest
|
||||
@FeatureFlags(
|
||||
flags = [Flag(QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER, false),
|
||||
Flag(EARLY_LINK_PROPERTIES_UPDATE_FOR_VPN, false)]
|
||||
flags = [Flag(QUEUE_NETWORK_AGENT_EVENTS_AFTER_B, false),
|
||||
Flag(EARLY_LINK_PROPERTIES_UPDATE_FOR_VPN, false),
|
||||
Flag(com.android.tethering.mainline.beta.Flags
|
||||
.FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER, false)]
|
||||
)
|
||||
@Test
|
||||
fun testEarlyLinkPropertiesUpdateDisabledForVPN() =
|
||||
|
|
|
|||
|
|
@ -184,7 +184,9 @@ open class CSTest {
|
|||
it[ConnectivityFlags.DELAY_DESTROY_SOCKETS] = true
|
||||
it[ConnectivityFlags.USE_DECLARED_METHODS_FOR_CALLBACKS] = true
|
||||
it[ConnectivityFlags.QUEUE_CALLBACKS_FOR_FROZEN_APPS] = true
|
||||
it[ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER] = true
|
||||
it[ConnectivityFlags.QUEUE_NETWORK_AGENT_EVENTS_AFTER_B] = true
|
||||
it[com.android.tethering.mainline.beta.Flags
|
||||
.FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER] = true
|
||||
it[ConnectivityFlags.CLOSE_QUIC_CONNECTION] = true
|
||||
it[ConnectivityFlags.EARLY_LINK_PROPERTIES_UPDATE_FOR_VPN] = true
|
||||
it[ConnectivityFlags.CONSTRAINED_DATA_SATELLITE_METRICS] = true
|
||||
|
|
@ -540,6 +542,12 @@ open class CSTest {
|
|||
}
|
||||
|
||||
override fun shouldBluetoothTetheringUseRandomAddress() = false
|
||||
|
||||
override fun shouldQueueNetworkAgentEventsInSystemServer() =
|
||||
enabledFeatures[com.android.tethering.mainline.beta.Flags
|
||||
.FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER]
|
||||
?: fail("Unmocked FLAG_QUEUE_NETWORK_AGENT_EVENTS_IN_SYSTEM_SERVER," +
|
||||
" see CSTest.enabledFeatures")
|
||||
}
|
||||
|
||||
inner class PermDeps : PermissionMonitor.Dependencies() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue