From 904a38be5ee62d87786fdceec1dbb5ffe066e079 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Fri, 15 Mar 2019 02:25:09 +0900 Subject: [PATCH] Remove NetworkParcelable With the @JavaOnlyStableParcelable annotation, Network can now be used as-is as a framework parcelable. Test: atest FrameworksNetTests NetworkStackTests Bug: 126477266 Change-Id: I5d9695a31b3ac48d10edcf08ccd0c34375353b79 --- Android.bp | 1 - .../android/net/INetworkStackConnector.aidl | 5 +- core/java/android/net/Network.aidl | 2 +- core/java/android/net/NetworkParcelable.aidl | 22 -------- .../ProvisioningConfigurationParcelable.aidl | 4 +- .../android/server/NetworkStackService.java | 10 ++-- .../android/server/ConnectivityService.java | 3 +- .../java/android/net/NetworkStackClient.java | 3 +- .../net/shared/NetworkParcelableUtil.java | 50 ------------------- .../net/shared/ProvisioningConfiguration.java | 4 +- .../server/ConnectivityServiceTest.java | 8 +-- 11 files changed, 14 insertions(+), 98 deletions(-) delete mode 100644 core/java/android/net/NetworkParcelable.aidl delete mode 100644 services/net/java/android/net/shared/NetworkParcelableUtil.java diff --git a/Android.bp b/Android.bp index 3b4714bcc749d..0d22ec07b60dd 100644 --- a/Android.bp +++ b/Android.bp @@ -831,7 +831,6 @@ aidl_interface { "core/java/android/net/INetworkStackConnector.aidl", "core/java/android/net/INetworkStackStatusCallback.aidl", "core/java/android/net/InitialConfigurationParcelable.aidl", - "core/java/android/net/NetworkParcelable.aidl", "core/java/android/net/PrivateDnsConfigParcel.aidl", "core/java/android/net/ProvisioningConfigurationParcelable.aidl", "core/java/android/net/StaticIpConfigurationParcelable.aidl", diff --git a/core/java/android/net/INetworkStackConnector.aidl b/core/java/android/net/INetworkStackConnector.aidl index e052488f38c82..edb9df61044fb 100644 --- a/core/java/android/net/INetworkStackConnector.aidl +++ b/core/java/android/net/INetworkStackConnector.aidl @@ -16,7 +16,7 @@ package android.net; import android.net.INetworkMonitorCallbacks; -import android.net.NetworkParcelable; +import android.net.Network; import android.net.dhcp.DhcpServingParamsParcel; import android.net.dhcp.IDhcpServerCallbacks; import android.net.ip.IIpClientCallbacks; @@ -25,7 +25,6 @@ import android.net.ip.IIpClientCallbacks; oneway interface INetworkStackConnector { void makeDhcpServer(in String ifName, in DhcpServingParamsParcel params, in IDhcpServerCallbacks cb); - void makeNetworkMonitor(in NetworkParcelable network, String name, - in INetworkMonitorCallbacks cb); + void makeNetworkMonitor(in Network network, String name, in INetworkMonitorCallbacks cb); void makeIpClient(in String ifName, in IIpClientCallbacks callbacks); } \ No newline at end of file diff --git a/core/java/android/net/Network.aidl b/core/java/android/net/Network.aidl index 73ba1af3f3d0d..05622025bf33c 100644 --- a/core/java/android/net/Network.aidl +++ b/core/java/android/net/Network.aidl @@ -17,4 +17,4 @@ package android.net; -parcelable Network; +@JavaOnlyStableParcelable parcelable Network; diff --git a/core/java/android/net/NetworkParcelable.aidl b/core/java/android/net/NetworkParcelable.aidl deleted file mode 100644 index c26352efb0787..0000000000000 --- a/core/java/android/net/NetworkParcelable.aidl +++ /dev/null @@ -1,22 +0,0 @@ -/* -** -** Copyright (C) 2019 The Android Open Source Project -** -** Licensed under the Apache License, Version 2.0 (the "License"); -** you may not use this file except in compliance with the License. -** You may obtain a copy of the License at -** -** http://www.apache.org/licenses/LICENSE-2.0 -** -** Unless required by applicable law or agreed to in writing, software -** distributed under the License is distributed on an "AS IS" BASIS, -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -** See the License for the specific language governing permissions and -** limitations under the License. -*/ - -package android.net; - -parcelable NetworkParcelable { - long networkHandle; -} diff --git a/core/java/android/net/ProvisioningConfigurationParcelable.aidl b/core/java/android/net/ProvisioningConfigurationParcelable.aidl index 2a144f2aae3b8..5b46d7f55ee37 100644 --- a/core/java/android/net/ProvisioningConfigurationParcelable.aidl +++ b/core/java/android/net/ProvisioningConfigurationParcelable.aidl @@ -19,7 +19,7 @@ package android.net; import android.net.ApfCapabilitiesParcelable; import android.net.InitialConfigurationParcelable; -import android.net.NetworkParcelable; +import android.net.Network; import android.net.StaticIpConfigurationParcelable; parcelable ProvisioningConfigurationParcelable { @@ -33,6 +33,6 @@ parcelable ProvisioningConfigurationParcelable { ApfCapabilitiesParcelable apfCapabilities; int provisioningTimeoutMs; int ipv6AddrGenMode; - NetworkParcelable network; + Network network; String displayName; } diff --git a/packages/NetworkStack/src/com/android/server/NetworkStackService.java b/packages/NetworkStack/src/com/android/server/NetworkStackService.java index 72955bb22a008..e7c8e8578f811 100644 --- a/packages/NetworkStack/src/com/android/server/NetworkStackService.java +++ b/packages/NetworkStack/src/com/android/server/NetworkStackService.java @@ -19,7 +19,6 @@ package com.android.server; import static android.net.dhcp.IDhcpServer.STATUS_INVALID_ARGUMENT; import static android.net.dhcp.IDhcpServer.STATUS_SUCCESS; import static android.net.dhcp.IDhcpServer.STATUS_UNKNOWN_ERROR; -import static android.net.shared.NetworkParcelableUtil.fromStableParcelable; import static com.android.server.util.PermissionUtil.checkDumpPermission; import static com.android.server.util.PermissionUtil.checkNetworkStackCallingPermission; @@ -35,7 +34,6 @@ import android.net.INetworkMonitor; import android.net.INetworkMonitorCallbacks; import android.net.INetworkStackConnector; import android.net.Network; -import android.net.NetworkParcelable; import android.net.PrivateDnsConfigParcel; import android.net.dhcp.DhcpServer; import android.net.dhcp.DhcpServingParams; @@ -152,12 +150,10 @@ public class NetworkStackService extends Service { } @Override - public void makeNetworkMonitor( - NetworkParcelable network, String name, INetworkMonitorCallbacks cb) + public void makeNetworkMonitor(Network network, String name, INetworkMonitorCallbacks cb) throws RemoteException { - final Network parsedNetwork = fromStableParcelable(network); - final SharedLog log = addValidationLogs(parsedNetwork, name); - final NetworkMonitor nm = new NetworkMonitor(mContext, cb, parsedNetwork, log); + final SharedLog log = addValidationLogs(network, name); + final NetworkMonitor nm = new NetworkMonitor(mContext, cb, network, log); cb.onNetworkMonitorCreated(new NetworkMonitorImpl(nm)); } diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 524d5c66b3935..66c9735e4ca04 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -41,7 +41,6 @@ import static android.net.NetworkCapabilities.TRANSPORT_VPN; import static android.net.NetworkPolicyManager.RULE_NONE; import static android.net.NetworkPolicyManager.uidRulesToString; import static android.net.shared.NetworkMonitorUtils.isValidationRequired; -import static android.net.shared.NetworkParcelableUtil.toStableParcelable; import static android.os.Process.INVALID_UID; import static android.system.OsConstants.IPPROTO_TCP; import static android.system.OsConstants.IPPROTO_UDP; @@ -5380,7 +5379,7 @@ public class ConnectivityService extends IConnectivityManager.Stub final long token = Binder.clearCallingIdentity(); try { getNetworkStack().makeNetworkMonitor( - toStableParcelable(nai.network), name, new NetworkMonitorCallbacks(nai)); + nai.network, name, new NetworkMonitorCallbacks(nai)); } finally { Binder.restoreCallingIdentity(token); } diff --git a/services/net/java/android/net/NetworkStackClient.java b/services/net/java/android/net/NetworkStackClient.java index a8f4a77a91b47..6162319c0d4d3 100644 --- a/services/net/java/android/net/NetworkStackClient.java +++ b/services/net/java/android/net/NetworkStackClient.java @@ -120,8 +120,7 @@ public class NetworkStackClient { * *

The INetworkMonitor will be returned asynchronously through the provided callbacks. */ - public void makeNetworkMonitor( - NetworkParcelable network, String name, INetworkMonitorCallbacks cb) { + public void makeNetworkMonitor(Network network, String name, INetworkMonitorCallbacks cb) { requestConnector(connector -> { try { connector.makeNetworkMonitor(network, name, cb); diff --git a/services/net/java/android/net/shared/NetworkParcelableUtil.java b/services/net/java/android/net/shared/NetworkParcelableUtil.java deleted file mode 100644 index d0b54b8b81d0e..0000000000000 --- a/services/net/java/android/net/shared/NetworkParcelableUtil.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2019 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.net.shared; - -import android.annotation.Nullable; -import android.net.Network; -import android.net.NetworkParcelable; - -/** - * Utility methods to convert to/from stable AIDL parcelables for network attribute classes. - * @hide - */ -public final class NetworkParcelableUtil { - /** - * Convert from a Network to a NetworkParcelable. - */ - public static NetworkParcelable toStableParcelable(@Nullable Network network) { - if (network == null) { - return null; - } - final NetworkParcelable p = new NetworkParcelable(); - p.networkHandle = network.getNetworkHandle(); - - return p; - } - - /** - * Convert from a NetworkParcelable to a Network. - */ - public static Network fromStableParcelable(@Nullable NetworkParcelable p) { - if (p == null) { - return null; - } - return Network.fromNetworkHandle(p.networkHandle); - } -} diff --git a/services/net/java/android/net/shared/ProvisioningConfiguration.java b/services/net/java/android/net/shared/ProvisioningConfiguration.java index f9370653411e3..0aceb2278660e 100644 --- a/services/net/java/android/net/shared/ProvisioningConfiguration.java +++ b/services/net/java/android/net/shared/ProvisioningConfiguration.java @@ -239,7 +239,7 @@ public class ProvisioningConfiguration { p.apfCapabilities = IpConfigurationParcelableUtil.toStableParcelable(mApfCapabilities); p.provisioningTimeoutMs = mProvisioningTimeoutMs; p.ipv6AddrGenMode = mIPv6AddrGenMode; - p.network = NetworkParcelableUtil.toStableParcelable(mNetwork); + p.network = mNetwork; p.displayName = mDisplayName; return p; } @@ -263,7 +263,7 @@ public class ProvisioningConfiguration { p.apfCapabilities); config.mProvisioningTimeoutMs = p.provisioningTimeoutMs; config.mIPv6AddrGenMode = p.ipv6AddrGenMode; - config.mNetwork = NetworkParcelableUtil.fromStableParcelable(p.network); + config.mNetwork = p.network; config.mDisplayName = p.displayName; return config; } diff --git a/tests/net/java/com/android/server/ConnectivityServiceTest.java b/tests/net/java/com/android/server/ConnectivityServiceTest.java index 30936294e6422..b92d934d109a6 100644 --- a/tests/net/java/com/android/server/ConnectivityServiceTest.java +++ b/tests/net/java/com/android/server/ConnectivityServiceTest.java @@ -60,7 +60,6 @@ import static android.net.NetworkPolicyManager.RULE_ALLOW_METERED; import static android.net.NetworkPolicyManager.RULE_NONE; import static android.net.NetworkPolicyManager.RULE_REJECT_ALL; import static android.net.NetworkPolicyManager.RULE_REJECT_METERED; -import static android.net.shared.NetworkParcelableUtil.fromStableParcelable; import static com.android.internal.util.TestUtils.waitForIdleHandler; import static com.android.internal.util.TestUtils.waitForIdleLooper; @@ -123,7 +122,6 @@ import android.net.NetworkFactory; import android.net.NetworkInfo; import android.net.NetworkInfo.DetailedState; import android.net.NetworkMisc; -import android.net.NetworkParcelable; import android.net.NetworkRequest; import android.net.NetworkSpecifier; import android.net.NetworkStackClient; @@ -500,8 +498,7 @@ public class ConnectivityServiceTest { fail(e.getMessage()); } - final ArgumentCaptor nmNetworkCaptor = - ArgumentCaptor.forClass(NetworkParcelable.class); + final ArgumentCaptor nmNetworkCaptor = ArgumentCaptor.forClass(Network.class); final ArgumentCaptor nmCbCaptor = ArgumentCaptor.forClass(INetworkMonitorCallbacks.class); doNothing().when(mNetworkStack).makeNetworkMonitor( @@ -541,8 +538,7 @@ public class ConnectivityServiceTest { } }; - assertEquals( - mNetworkAgent.netId, fromStableParcelable(nmNetworkCaptor.getValue()).netId); + assertEquals(mNetworkAgent.netId, nmNetworkCaptor.getValue().netId); mNmCallbacks = nmCbCaptor.getValue(); try {