Merge "cronet: remove inner TestUrlRequestCallback class"
diff --git a/Tethering/Android.bp b/Tethering/Android.bp
index b1bee32..829e66a 100644
--- a/Tethering/Android.bp
+++ b/Tethering/Android.bp
@@ -75,7 +75,6 @@
libs: [
"framework-tethering.impl",
],
- plugins: ["java_api_finder"],
manifest: "AndroidManifestBase.xml",
lint: { strict_updatability_linting: true },
}
diff --git a/Tethering/src/android/net/ip/IpServer.java b/Tethering/src/android/net/ip/IpServer.java
index 0a34669..8cf13d3 100644
--- a/Tethering/src/android/net/ip/IpServer.java
+++ b/Tethering/src/android/net/ip/IpServer.java
@@ -378,6 +378,11 @@
return Collections.unmodifiableList(mDhcpLeases);
}
+ /** Enable this IpServer. IpServer state machine will be tethered or localHotspot state. */
+ public void enable(final int requestedState, final TetheringRequestParcel request) {
+ sendMessage(CMD_TETHER_REQUESTED, requestedState, 0, request);
+ }
+
/** Stop this IpServer. After this is called this IpServer should not be used any more. */
public void stop() {
sendMessage(CMD_INTERFACE_DOWN);
diff --git a/Tethering/src/com/android/networkstack/tethering/Tethering.java b/Tethering/src/com/android/networkstack/tethering/Tethering.java
index c2cf92c..f0dd030 100644
--- a/Tethering/src/com/android/networkstack/tethering/Tethering.java
+++ b/Tethering/src/com/android/networkstack/tethering/Tethering.java
@@ -1001,8 +1001,7 @@
if (request != null) {
mActiveTetheringRequests.delete(type);
}
- tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_REQUESTED, requestedState, 0,
- request);
+ tetherState.ipServer.enable(requestedState, request);
return TETHER_ERROR_NO_ERROR;
}
@@ -1026,7 +1025,7 @@
Log.e(TAG, "Tried to untether an inactive iface :" + iface + ", ignoring");
return TETHER_ERROR_UNAVAIL_IFACE;
}
- tetherState.ipServer.sendMessage(IpServer.CMD_TETHER_UNREQUESTED);
+ tetherState.ipServer.unwanted();
return TETHER_ERROR_NO_ERROR;
}
@@ -1087,8 +1086,6 @@
final ArrayList<TetheringInterface> errored = new ArrayList<>();
final ArrayList<Integer> lastErrors = new ArrayList<>();
- final TetheringConfiguration cfg = mConfig;
-
int downstreamTypesMask = DOWNSTREAM_NONE;
for (int i = 0; i < mTetherStates.size(); i++) {
final TetherState tetherState = mTetherStates.valueAt(i);
diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
index c2c9fc4..da69a8d 100644
--- a/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
+++ b/Tethering/tests/integration/src/android/net/EthernetTetheringTest.java
@@ -67,16 +67,13 @@
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
-import android.app.UiAutomation;
import android.content.Context;
-import android.content.pm.PackageManager;
import android.net.EthernetManager.TetheredInterfaceCallback;
import android.net.EthernetManager.TetheredInterfaceRequest;
import android.net.TetheringManager.StartTetheringCallback;
import android.net.TetheringManager.TetheringEventCallback;
import android.net.TetheringManager.TetheringRequest;
import android.net.TetheringTester.TetheredDevice;
-import android.net.cts.util.CtsNetUtils;
import android.os.Build;
import android.os.Handler;
import android.os.HandlerThread;
@@ -88,7 +85,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import androidx.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
import androidx.test.runner.AndroidJUnit4;
@@ -143,17 +139,12 @@
@RunWith(AndroidJUnit4.class)
@MediumTest
-public class EthernetTetheringTest {
+public class EthernetTetheringTest extends EthernetTetheringTestBase {
@Rule
public final DevSdkIgnoreRule mIgnoreRule = new DevSdkIgnoreRule();
private static final String TAG = EthernetTetheringTest.class.getSimpleName();
- private static final int TIMEOUT_MS = 5000;
- // Used to check if any tethering interface is available. Choose 200ms to be request timeout
- // because the average interface requested time on cuttlefish@acloud is around 10ms.
- // See TetheredInterfaceRequester.getInterface, isInterfaceForTetheringAvailable.
- private static final int AVAILABLE_TETHER_IFACE_REQUEST_TIMEOUT_MS = 200;
- private static final int TETHER_REACHABILITY_ATTEMPTS = 20;
+
private static final int DUMP_POLLING_MAX_RETRY = 100;
private static final int DUMP_POLLING_INTERVAL_MS = 50;
// Kernel treats a confirmed UDP connection which active after two seconds as stream mode.
@@ -168,35 +159,14 @@
// Per TX UDP packet size: ethhdr (14) + iphdr (20) + udphdr (8) + payload (2) = 44 bytes.
private static final int TX_UDP_PACKET_SIZE = 44;
private static final int TX_UDP_PACKET_COUNT = 123;
- private static final long WAIT_RA_TIMEOUT_MS = 2000;
-
- private static final MacAddress TEST_MAC = MacAddress.fromString("1:2:3:4:5:6");
- private static final LinkAddress TEST_IP4_ADDR = new LinkAddress("10.0.0.1/24");
- private static final LinkAddress TEST_IP6_ADDR = new LinkAddress("2001:db8:1::101/64");
- private static final InetAddress TEST_IP4_DNS = parseNumericAddress("8.8.8.8");
- private static final InetAddress TEST_IP6_DNS = parseNumericAddress("2001:db8:1::888");
- private static final IpPrefix TEST_NAT64PREFIX = new IpPrefix("64:ff9b::/96");
- private static final Inet6Address REMOTE_NAT64_ADDR =
- (Inet6Address) parseNumericAddress("64:ff9b::808:808");
- private static final Inet6Address REMOTE_IP6_ADDR =
- (Inet6Address) parseNumericAddress("2002:db8:1::515:ca");
- private static final ByteBuffer TEST_REACHABILITY_PAYLOAD =
- ByteBuffer.wrap(new byte[] { (byte) 0x55, (byte) 0xaa });
- private static final ByteBuffer EMPTY_PAYLOAD = ByteBuffer.wrap(new byte[0]);
private static final short DNS_PORT = 53;
- private static final short WINDOW = (short) 0x2000;
- private static final short URGENT_POINTER = 0;
private static final String DUMPSYS_TETHERING_RAWMAP_ARG = "bpfRawMap";
private static final String DUMPSYS_RAWMAP_ARG_STATS = "--stats";
private static final String DUMPSYS_RAWMAP_ARG_UPSTREAM4 = "--upstream4";
private static final String LINE_DELIMITER = "\\n";
- // version=6, traffic class=0x0, flowlabel=0x0;
- private static final int VERSION_TRAFFICCLASS_FLOWLABEL = 0x60000000;
- private static final short HOP_LIMIT = 0x40;
-
private static final short ICMPECHO_CODE = 0x0;
private static final short ICMPECHO_ID = 0x0;
private static final short ICMPECHO_SEQ = 0x0;
@@ -261,27 +231,9 @@
(byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04 /* Address: 1.2.3.4 */
};
- private final Context mContext = InstrumentationRegistry.getContext();
- private final EthernetManager mEm = mContext.getSystemService(EthernetManager.class);
- private final TetheringManager mTm = mContext.getSystemService(TetheringManager.class);
- private final PackageManager mPackageManager = mContext.getPackageManager();
- private final CtsNetUtils mCtsNetUtils = new CtsNetUtils(mContext);
-
- private TestNetworkInterface mDownstreamIface;
- private HandlerThread mHandlerThread;
- private Handler mHandler;
- private TapPacketReader mDownstreamReader;
- private TapPacketReader mUpstreamReader;
-
private TetheredInterfaceRequester mTetheredInterfaceRequester;
private MyTetheringEventCallback mTetheringEventCallback;
- private UiAutomation mUiAutomation =
- InstrumentationRegistry.getInstrumentation().getUiAutomation();
- private boolean mRunTests;
-
- private TestNetworkTracker mUpstreamTracker;
-
@Before
public void setUp() throws Exception {
mHandlerThread = new HandlerThread(getClass().getSimpleName());
@@ -295,6 +247,30 @@
mTetheredInterfaceRequester = new TetheredInterfaceRequester(mHandler, mEm);
}
+ private void maybeStopTapPacketReader(final TapPacketReader tapPacketReader)
+ throws Exception {
+ if (tapPacketReader != null) {
+ TapPacketReader reader = tapPacketReader;
+ mHandler.post(() -> reader.stop());
+ }
+ }
+
+ private void maybeCloseTestInterface(final TestNetworkInterface testInterface)
+ throws Exception {
+ if (testInterface != null) {
+ testInterface.getFileDescriptor().close();
+ Log.d(TAG, "Deleted test interface " + testInterface.getInterfaceName());
+ }
+ }
+
+ private void maybeUnregisterTetheringEventCallback(final MyTetheringEventCallback callback)
+ throws Exception {
+ if (callback != null) {
+ callback.awaitInterfaceUntethered();
+ callback.unregister();
+ }
+ }
+
private void cleanUp() throws Exception {
setPreferTestNetworks(false);
@@ -310,24 +286,19 @@
mUpstreamReader = null;
}
- if (mDownstreamReader != null) {
- TapPacketReader reader = mDownstreamReader;
- mHandler.post(() -> reader.stop());
- mDownstreamReader = null;
- }
-
+ maybeStopTapPacketReader(mDownstreamReader);
+ mDownstreamReader = null;
// To avoid flaky which caused by the next test started but the previous interface is not
// untracked from EthernetTracker yet. Just delete the test interface without explicitly
// calling TetheringManager#stopTethering could let EthernetTracker untrack the test
// interface from server mode before tethering stopped. Thus, awaitInterfaceUntethered
// could not only make sure tethering is stopped but also guarantee the test interface is
// untracked from EthernetTracker.
- maybeDeleteTestInterface();
- if (mTetheringEventCallback != null) {
- mTetheringEventCallback.awaitInterfaceUntethered();
- mTetheringEventCallback.unregister();
- mTetheringEventCallback = null;
- }
+ maybeCloseTestInterface(mDownstreamIface);
+ mDownstreamIface = null;
+ maybeUnregisterTetheringEventCallback(mTetheringEventCallback);
+ mTetheringEventCallback = null;
+
runAsShell(NETWORK_SETTINGS, () -> mTetheredInterfaceRequester.release());
setIncludeTestInterfaces(false);
}
@@ -383,26 +354,50 @@
});
}
+ private String getTetheredInterface() throws Exception {
+ return mTetheredInterfaceRequester.getInterface();
+ }
+
+ private CompletableFuture<String> requestTetheredInterface() throws Exception {
+ return mTetheredInterfaceRequester.requestInterface();
+ }
+
@Test
public void testVirtualEthernetAlreadyExists() throws Exception {
// This test requires manipulating packets. Skip if there is a physical Ethernet connected.
assumeFalse(isInterfaceForTetheringAvailable());
- mDownstreamIface = createTestInterface();
- // This must be done now because as soon as setIncludeTestInterfaces(true) is called, the
- // interface will be placed in client mode, which will delete the link-local address.
- // At that point NetworkInterface.getByName() will cease to work on the interface, because
- // starting in R NetworkInterface can no longer see interfaces without IP addresses.
- int mtu = getMTU(mDownstreamIface);
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
- Log.d(TAG, "Including test interfaces");
- setIncludeTestInterfaces(true);
+ try {
+ downstreamIface = createTestInterface();
+ // This must be done now because as soon as setIncludeTestInterfaces(true) is called,
+ // the interface will be placed in client mode, which will delete the link-local
+ // address. At that point NetworkInterface.getByName() will cease to work on the
+ // interface, because starting in R NetworkInterface can no longer see interfaces
+ // without IP addresses.
+ int mtu = getMTU(downstreamIface);
- final String iface = mTetheredInterfaceRequester.getInterface();
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
+ Log.d(TAG, "Including test interfaces");
+ setIncludeTestInterfaces(true);
- checkVirtualEthernet(mDownstreamIface, mtu);
+ final String iface = getTetheredInterface();
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
+
+ // Check virtual ethernet.
+ FileDescriptor fd = downstreamIface.getFileDescriptor().getFileDescriptor();
+ downstreamReader = makePacketReader(fd, mtu);
+ tetheringEventCallback = enableEthernetTethering(downstreamIface.getInterfaceName(),
+ null /* any upstream */);
+ checkTetheredClientCallbacks(downstreamReader, tetheringEventCallback);
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
@Test
@@ -410,17 +405,32 @@
// This test requires manipulating packets. Skip if there is a physical Ethernet connected.
assumeFalse(isInterfaceForTetheringAvailable());
- CompletableFuture<String> futureIface = mTetheredInterfaceRequester.requestInterface();
+ CompletableFuture<String> futureIface = requestTetheredInterface();
setIncludeTestInterfaces(true);
- mDownstreamIface = createTestInterface();
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
- final String iface = futureIface.get(TIMEOUT_MS, TimeUnit.MILLISECONDS);
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
+ try {
+ downstreamIface = createTestInterface();
- checkVirtualEthernet(mDownstreamIface, getMTU(mDownstreamIface));
+ final String iface = futureIface.get(TIMEOUT_MS, TimeUnit.MILLISECONDS);
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
+
+ // Check virtual ethernet.
+ FileDescriptor fd = downstreamIface.getFileDescriptor().getFileDescriptor();
+ downstreamReader = makePacketReader(fd, getMTU(downstreamIface));
+ tetheringEventCallback = enableEthernetTethering(downstreamIface.getInterfaceName(),
+ null /* any upstream */);
+ checkTetheredClientCallbacks(downstreamReader, tetheringEventCallback);
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
@Test
@@ -429,42 +439,51 @@
setIncludeTestInterfaces(true);
- mDownstreamIface = createTestInterface();
-
- final String iface = mTetheredInterfaceRequester.getInterface();
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
-
- assertInvalidStaticIpv4Request(iface, null, null);
- assertInvalidStaticIpv4Request(iface, "2001:db8::1/64", "2001:db8:2::/64");
- assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", "2001:db8:2::/28");
- assertInvalidStaticIpv4Request(iface, "2001:db8:2::/28", "192.0.2.2/28");
- assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", null);
- assertInvalidStaticIpv4Request(iface, null, "192.0.2.2/28");
- assertInvalidStaticIpv4Request(iface, "192.0.2.3/27", "192.0.2.2/28");
-
- final String localAddr = "192.0.2.3/28";
- final String clientAddr = "192.0.2.2/28";
- mTetheringEventCallback = enableEthernetTethering(iface,
- requestWithStaticIpv4(localAddr, clientAddr), null /* any upstream */);
-
- mTetheringEventCallback.awaitInterfaceTethered();
- assertInterfaceHasIpAddress(iface, localAddr);
-
- byte[] client1 = MacAddress.fromString("1:2:3:4:5:6").toByteArray();
- byte[] client2 = MacAddress.fromString("a:b:c:d:e:f").toByteArray();
-
- FileDescriptor fd = mDownstreamIface.getFileDescriptor().getFileDescriptor();
- mDownstreamReader = makePacketReader(fd, getMTU(mDownstreamIface));
- TetheringTester tester = new TetheringTester(mDownstreamReader);
- DhcpResults dhcpResults = tester.runDhcp(client1);
- assertEquals(new LinkAddress(clientAddr), dhcpResults.ipAddress);
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
try {
- tester.runDhcp(client2);
- fail("Only one client should get an IP address");
- } catch (TimeoutException expected) { }
+ downstreamIface = createTestInterface();
+ final String iface = getTetheredInterface();
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
+
+ assertInvalidStaticIpv4Request(iface, null, null);
+ assertInvalidStaticIpv4Request(iface, "2001:db8::1/64", "2001:db8:2::/64");
+ assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", "2001:db8:2::/28");
+ assertInvalidStaticIpv4Request(iface, "2001:db8:2::/28", "192.0.2.2/28");
+ assertInvalidStaticIpv4Request(iface, "192.0.2.2/28", null);
+ assertInvalidStaticIpv4Request(iface, null, "192.0.2.2/28");
+ assertInvalidStaticIpv4Request(iface, "192.0.2.3/27", "192.0.2.2/28");
+
+ final String localAddr = "192.0.2.3/28";
+ final String clientAddr = "192.0.2.2/28";
+ tetheringEventCallback = enableEthernetTethering(iface,
+ requestWithStaticIpv4(localAddr, clientAddr), null /* any upstream */);
+
+ tetheringEventCallback.awaitInterfaceTethered();
+ assertInterfaceHasIpAddress(iface, localAddr);
+
+ byte[] client1 = MacAddress.fromString("1:2:3:4:5:6").toByteArray();
+ byte[] client2 = MacAddress.fromString("a:b:c:d:e:f").toByteArray();
+
+ FileDescriptor fd = downstreamIface.getFileDescriptor().getFileDescriptor();
+ downstreamReader = makePacketReader(fd, getMTU(downstreamIface));
+ TetheringTester tester = new TetheringTester(downstreamReader);
+ DhcpResults dhcpResults = tester.runDhcp(client1);
+ assertEquals(new LinkAddress(clientAddr), dhcpResults.ipAddress);
+
+ try {
+ tester.runDhcp(client2);
+ fail("Only one client should get an IP address");
+ } catch (TimeoutException expected) { }
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
private static void waitForRouterAdvertisement(TapPacketReader reader, String iface,
@@ -510,26 +529,36 @@
setIncludeTestInterfaces(true);
- mDownstreamIface = createTestInterface();
+ TestNetworkInterface downstreamIface = null;
+ MyTetheringEventCallback tetheringEventCallback = null;
+ TapPacketReader downstreamReader = null;
- final String iface = mTetheredInterfaceRequester.getInterface();
- assertEquals("TetheredInterfaceCallback for unexpected interface",
- mDownstreamIface.getInterfaceName(), iface);
+ try {
+ downstreamIface = createTestInterface();
- final TetheringRequest request = new TetheringRequest.Builder(TETHERING_ETHERNET)
- .setConnectivityScope(CONNECTIVITY_SCOPE_LOCAL).build();
- mTetheringEventCallback = enableEthernetTethering(iface, request,
- null /* any upstream */);
- mTetheringEventCallback.awaitInterfaceLocalOnly();
+ final String iface = getTetheredInterface();
+ assertEquals("TetheredInterfaceCallback for unexpected interface",
+ downstreamIface.getInterfaceName(), iface);
- // makePacketReader only works after tethering is started, because until then the interface
- // does not have an IP address, and unprivileged apps cannot see interfaces without IP
- // addresses. This shouldn't be flaky because the TAP interface will buffer all packets even
- // before the reader is started.
- mDownstreamReader = makePacketReader(mDownstreamIface);
+ final TetheringRequest request = new TetheringRequest.Builder(TETHERING_ETHERNET)
+ .setConnectivityScope(CONNECTIVITY_SCOPE_LOCAL).build();
+ tetheringEventCallback = enableEthernetTethering(iface, request,
+ null /* any upstream */);
+ tetheringEventCallback.awaitInterfaceLocalOnly();
- waitForRouterAdvertisement(mDownstreamReader, iface, WAIT_RA_TIMEOUT_MS);
- expectLocalOnlyAddresses(iface);
+ // makePacketReader only works after tethering is started, because until then the
+ // interface does not have an IP address, and unprivileged apps cannot see interfaces
+ // without IP addresses. This shouldn't be flaky because the TAP interface will buffer
+ // all packets even before the reader is started.
+ downstreamReader = makePacketReader(downstreamIface);
+
+ waitForRouterAdvertisement(downstreamReader, iface, WAIT_RA_TIMEOUT_MS);
+ expectLocalOnlyAddresses(iface);
+ } finally {
+ maybeStopTapPacketReader(downstreamReader);
+ maybeCloseTestInterface(downstreamIface);
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
}
private boolean isAdbOverNetwork() {
@@ -546,12 +575,16 @@
// from client mode to server mode. See b/160389275.
assumeFalse(isAdbOverNetwork());
- // Get an interface to use.
- final String iface = mTetheredInterfaceRequester.getInterface();
+ MyTetheringEventCallback tetheringEventCallback = null;
+ try {
+ // Get an interface to use.
+ final String iface = getTetheredInterface();
- // Enable Ethernet tethering and check that it starts.
- mTetheringEventCallback = enableEthernetTethering(iface, null /* any upstream */);
-
+ // Enable Ethernet tethering and check that it starts.
+ tetheringEventCallback = enableEthernetTethering(iface, null /* any upstream */);
+ } finally {
+ maybeUnregisterTetheringEventCallback(tetheringEventCallback);
+ }
// There is nothing more we can do on a physical interface without connecting an actual
// client, which is not possible in this test.
}
@@ -810,15 +843,8 @@
return reader;
}
- private void checkVirtualEthernet(TestNetworkInterface iface, int mtu) throws Exception {
- FileDescriptor fd = iface.getFileDescriptor().getFileDescriptor();
- mDownstreamReader = makePacketReader(fd, mtu);
- mTetheringEventCallback = enableEthernetTethering(iface.getInterfaceName(),
- null /* any upstream */);
- checkTetheredClientCallbacks(mDownstreamReader);
- }
-
- private void checkTetheredClientCallbacks(TapPacketReader packetReader) throws Exception {
+ private void checkTetheredClientCallbacks(final TapPacketReader packetReader,
+ final MyTetheringEventCallback tetheringEventCallback) throws Exception {
// Create a fake client.
byte[] clientMacAddr = new byte[6];
new Random().nextBytes(clientMacAddr);
@@ -826,7 +852,7 @@
TetheringTester tester = new TetheringTester(packetReader);
DhcpResults dhcpResults = tester.runDhcp(clientMacAddr);
- final Collection<TetheredClient> clients = mTetheringEventCallback.awaitClientConnected();
+ final Collection<TetheredClient> clients = tetheringEventCallback.awaitClientConnected();
assertEquals(1, clients.size());
final TetheredClient client = clients.iterator().next();
@@ -945,14 +971,6 @@
return iface;
}
- private void maybeDeleteTestInterface() throws Exception {
- if (mDownstreamIface != null) {
- mDownstreamIface.getFileDescriptor().close();
- Log.d(TAG, "Deleted test interface " + mDownstreamIface.getInterfaceName());
- mDownstreamIface = null;
- }
- }
-
private TestNetworkTracker createTestUpstream(final List<LinkAddress> addresses,
final List<InetAddress> dnses) throws Exception {
setPreferTestNetworks(true);
@@ -1002,22 +1020,6 @@
// remote ip public ip private ip
// 8.8.8.8:443 <Upstream ip>:9876 <TetheredDevice ip>:9876
//
- private static final Inet4Address REMOTE_IP4_ADDR =
- (Inet4Address) parseNumericAddress("8.8.8.8");
- // Used by public port and private port. Assume port 9876 has not been used yet before the
- // testing that public port and private port are the same in the testing. Note that NAT port
- // forwarding could be different between private port and public port.
- // TODO: move to the start of test class.
- private static final short LOCAL_PORT = 9876;
- private static final short REMOTE_PORT = 433;
- private static final byte TYPE_OF_SERVICE = 0;
- private static final short ID = 27149;
- private static final short FLAGS_AND_FRAGMENT_OFFSET = (short) 0x4000; // flags=DF, offset=0
- private static final byte TIME_TO_LIVE = (byte) 0x40;
- private static final ByteBuffer RX_PAYLOAD =
- ByteBuffer.wrap(new byte[] { (byte) 0x12, (byte) 0x34 });
- private static final ByteBuffer TX_PAYLOAD =
- ByteBuffer.wrap(new byte[] { (byte) 0x56, (byte) 0x78 });
private short getEthType(@NonNull final InetAddress srcIp, @NonNull final InetAddress dstIp) {
return isAddressIpv4(srcIp, dstIp) ? (short) ETHER_TYPE_IPV4 : (short) ETHER_TYPE_IPV6;
diff --git a/Tethering/tests/integration/src/android/net/EthernetTetheringTestBase.java b/Tethering/tests/integration/src/android/net/EthernetTetheringTestBase.java
new file mode 100644
index 0000000..d58a60c
--- /dev/null
+++ b/Tethering/tests/integration/src/android/net/EthernetTetheringTestBase.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2022 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;
+
+import static android.net.InetAddresses.parseNumericAddress;
+
+import android.app.UiAutomation;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.net.cts.util.CtsNetUtils;
+import android.os.Handler;
+import android.os.HandlerThread;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.testutils.TapPacketReader;
+import com.android.testutils.TestNetworkTracker;
+
+import java.net.Inet4Address;
+import java.net.Inet6Address;
+import java.net.InetAddress;
+import java.nio.ByteBuffer;
+
+/**
+ * TODO: Common variables or methods shared between CtsEthernetTetheringTest and
+ * MtsEthernetTetheringTest.
+ */
+public abstract class EthernetTetheringTestBase {
+ private static final String TAG = EthernetTetheringTestBase.class.getSimpleName();
+
+ protected static final int TIMEOUT_MS = 5000;
+ // Used to check if any tethering interface is available. Choose 200ms to be request timeout
+ // because the average interface requested time on cuttlefish@acloud is around 10ms.
+ // See TetheredInterfaceRequester.getInterface, isInterfaceForTetheringAvailable.
+ protected static final int AVAILABLE_TETHER_IFACE_REQUEST_TIMEOUT_MS = 200;
+ protected static final int TETHER_REACHABILITY_ATTEMPTS = 20;
+ protected static final long WAIT_RA_TIMEOUT_MS = 2000;
+
+ // Address and NAT prefix definition.
+ protected static final MacAddress TEST_MAC = MacAddress.fromString("1:2:3:4:5:6");
+ protected static final LinkAddress TEST_IP4_ADDR = new LinkAddress("10.0.0.1/24");
+ protected static final LinkAddress TEST_IP6_ADDR = new LinkAddress("2001:db8:1::101/64");
+ protected static final InetAddress TEST_IP4_DNS = parseNumericAddress("8.8.8.8");
+ protected static final InetAddress TEST_IP6_DNS = parseNumericAddress("2001:db8:1::888");
+
+ protected static final Inet4Address REMOTE_IP4_ADDR =
+ (Inet4Address) parseNumericAddress("8.8.8.8");
+ protected static final Inet6Address REMOTE_IP6_ADDR =
+ (Inet6Address) parseNumericAddress("2002:db8:1::515:ca");
+ protected static final Inet6Address REMOTE_NAT64_ADDR =
+ (Inet6Address) parseNumericAddress("64:ff9b::808:808");
+ protected static final IpPrefix TEST_NAT64PREFIX = new IpPrefix("64:ff9b::/96");
+
+ // IPv4 header definition.
+ protected static final short ID = 27149;
+ protected static final short FLAGS_AND_FRAGMENT_OFFSET = (short) 0x4000; // flags=DF, offset=0
+ protected static final byte TIME_TO_LIVE = (byte) 0x40;
+ protected static final byte TYPE_OF_SERVICE = 0;
+
+ // IPv6 header definition.
+ protected static final short HOP_LIMIT = 0x40;
+ // version=6, traffic class=0x0, flowlabel=0x0;
+ protected static final int VERSION_TRAFFICCLASS_FLOWLABEL = 0x60000000;
+
+ // UDP and TCP header definition.
+ // LOCAL_PORT is used by public port and private port. Assume port 9876 has not been used yet
+ // before the testing that public port and private port are the same in the testing. Note that
+ // NAT port forwarding could be different between private port and public port.
+ protected static final short LOCAL_PORT = 9876;
+ protected static final short REMOTE_PORT = 433;
+ protected static final short WINDOW = (short) 0x2000;
+ protected static final short URGENT_POINTER = 0;
+
+ // Payload definition.
+ protected static final ByteBuffer EMPTY_PAYLOAD = ByteBuffer.wrap(new byte[0]);
+ protected static final ByteBuffer TEST_REACHABILITY_PAYLOAD =
+ ByteBuffer.wrap(new byte[] { (byte) 0x55, (byte) 0xaa });
+ protected static final ByteBuffer RX_PAYLOAD =
+ ByteBuffer.wrap(new byte[] { (byte) 0x12, (byte) 0x34 });
+ protected static final ByteBuffer TX_PAYLOAD =
+ ByteBuffer.wrap(new byte[] { (byte) 0x56, (byte) 0x78 });
+
+ protected final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
+ protected final EthernetManager mEm = mContext.getSystemService(EthernetManager.class);
+ protected final TetheringManager mTm = mContext.getSystemService(TetheringManager.class);
+ protected final PackageManager mPackageManager = mContext.getPackageManager();
+ protected final CtsNetUtils mCtsNetUtils = new CtsNetUtils(mContext);
+ protected final UiAutomation mUiAutomation =
+ InstrumentationRegistry.getInstrumentation().getUiAutomation();
+
+ // Late initialization in setUp()
+ protected boolean mRunTests;
+ protected HandlerThread mHandlerThread;
+ protected Handler mHandler;
+
+ // Late initialization in initTetheringTester().
+ protected TapPacketReader mUpstreamReader;
+ protected TestNetworkTracker mUpstreamTracker;
+ protected TestNetworkInterface mDownstreamIface;
+ protected TapPacketReader mDownstreamReader;
+}
diff --git a/framework-t/src/android/net/NetworkIdentity.java b/framework-t/src/android/net/NetworkIdentity.java
index 48e5092..edfd21c 100644
--- a/framework-t/src/android/net/NetworkIdentity.java
+++ b/framework-t/src/android/net/NetworkIdentity.java
@@ -400,10 +400,8 @@
setSubscriberId(snapshot.getSubscriberId());
setRoaming(!snapshot.getNetworkCapabilities().hasCapability(
NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING));
- setMetered(!(snapshot.getNetworkCapabilities().hasCapability(
- NetworkCapabilities.NET_CAPABILITY_NOT_METERED)
- || snapshot.getNetworkCapabilities().hasCapability(
- NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED)));
+ setMetered(!snapshot.getNetworkCapabilities().hasCapability(
+ NetworkCapabilities.NET_CAPABILITY_NOT_METERED));
setOemManaged(getOemBitfield(snapshot.getNetworkCapabilities()));
diff --git a/framework-t/src/android/net/NetworkTemplate.java b/framework-t/src/android/net/NetworkTemplate.java
index b6bd1a5..c0ae822 100644
--- a/framework-t/src/android/net/NetworkTemplate.java
+++ b/framework-t/src/android/net/NetworkTemplate.java
@@ -47,7 +47,6 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
-import android.text.TextUtils;
import android.util.ArraySet;
import com.android.internal.annotations.VisibleForTesting;
@@ -59,7 +58,6 @@
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
import java.util.Comparator;
-import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.SortedSet;
@@ -197,149 +195,67 @@
* Template to match {@link ConnectivityManager#TYPE_MOBILE} networks with
* the given IMSI.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
- @UnsupportedAppUsage
- public static NetworkTemplate buildTemplateMobileAll(String subscriberId) {
- return new NetworkTemplate(MATCH_MOBILE, subscriberId, null);
- }
-
- /**
- * Template to match cellular networks with the given IMSI, {@code ratType} and
- * {@code metered}. Use {@link #NETWORK_TYPE_ALL} to include all network types when
- * filtering. See {@code TelephonyManager.NETWORK_TYPE_*}.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateMobileWithRatType(@Nullable String subscriberId,
- int ratType, int metered) {
- if (TextUtils.isEmpty(subscriberId)) {
- return new NetworkTemplate(MATCH_MOBILE_WILDCARD, null /* subscriberId */,
- null /* matchSubscriberIds */,
- new String[0] /* matchWifiNetworkKeys */, metered, ROAMING_ALL,
- DEFAULT_NETWORK_ALL, ratType, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
- }
- return new NetworkTemplate(MATCH_MOBILE, subscriberId, new String[] { subscriberId },
- new String[0] /* matchWifiNetworkKeys */,
- metered, ROAMING_ALL, DEFAULT_NETWORK_ALL, ratType, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
+ public static NetworkTemplate buildTemplateMobileAll(@NonNull String subscriberId) {
+ return new NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES)
+ .setSubscriberIds(Set.of(subscriberId)).build();
}
/**
* Template to match metered {@link ConnectivityManager#TYPE_MOBILE} networks,
* regardless of IMSI.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
+ @Deprecated
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
public static NetworkTemplate buildTemplateMobileWildcard() {
- return new NetworkTemplate(MATCH_MOBILE_WILDCARD, null, null);
+ return new NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES).build();
}
/**
* Template to match all metered {@link ConnectivityManager#TYPE_WIFI} networks,
* regardless of key of the wifi network.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
- @UnsupportedAppUsage
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public static NetworkTemplate buildTemplateWifiWildcard() {
- // TODO: Consider replace this with MATCH_WIFI with NETWORK_ID_ALL
- // and SUBSCRIBER_ID_MATCH_RULE_ALL.
- return new NetworkTemplate(MATCH_WIFI_WILDCARD, null, null);
+ return new NetworkTemplate.Builder(MATCH_WIFI).build();
}
- /** @hide */
+ /**
+ * @deprecated Use {@link Builder} to build a template.
+ * @hide
+ */
@Deprecated
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public static NetworkTemplate buildTemplateWifi() {
return buildTemplateWifiWildcard();
}
/**
- * Template to match {@link ConnectivityManager#TYPE_WIFI} networks with the
- * given key of the wifi network.
- *
- * @param wifiNetworkKey key of the wifi network. see {@link WifiInfo#getNetworkKey()}
- * to know details about the key.
- * @hide
- */
- public static NetworkTemplate buildTemplateWifi(@NonNull String wifiNetworkKey) {
- Objects.requireNonNull(wifiNetworkKey);
- return new NetworkTemplate(MATCH_WIFI, null /* subscriberId */,
- new String[] { null } /* matchSubscriberIds */,
- new String[] { wifiNetworkKey }, METERED_ALL, ROAMING_ALL,
- DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_ALL);
- }
-
- /**
- * Template to match all {@link ConnectivityManager#TYPE_WIFI} networks with the given
- * key of the wifi network and IMSI.
- *
- * Call with {@link #WIFI_NETWORK_KEY_ALL} for {@code wifiNetworkKey} to get result regardless
- * of key of the wifi network.
- *
- * @param wifiNetworkKey key of the wifi network. see {@link WifiInfo#getNetworkKey()}
- * to know details about the key.
- * @param subscriberId the IMSI associated to this wifi network.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateWifi(@Nullable String wifiNetworkKey,
- @Nullable String subscriberId) {
- return new NetworkTemplate(MATCH_WIFI, subscriberId, new String[] { subscriberId },
- wifiNetworkKey != null
- ? new String[] { wifiNetworkKey } : new String[0],
- METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
- }
-
- /**
* Template to combine all {@link ConnectivityManager#TYPE_ETHERNET} style
* networks together.
*
+ * @deprecated Use {@link Builder} to build a template.
* @hide
*/
- @UnsupportedAppUsage
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public static NetworkTemplate buildTemplateEthernet() {
- return new NetworkTemplate(MATCH_ETHERNET, null, null);
- }
-
- /**
- * Template to combine all {@link ConnectivityManager#TYPE_BLUETOOTH} style
- * networks together.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateBluetooth() {
- return new NetworkTemplate(MATCH_BLUETOOTH, null, null);
- }
-
- /**
- * Template to combine all {@link ConnectivityManager#TYPE_PROXY} style
- * networks together.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateProxy() {
- return new NetworkTemplate(MATCH_PROXY, null, null);
- }
-
- /**
- * Template to match all metered carrier networks with the given IMSI.
- *
- * @hide
- */
- public static NetworkTemplate buildTemplateCarrierMetered(@NonNull String subscriberId) {
- Objects.requireNonNull(subscriberId);
- return new NetworkTemplate(MATCH_CARRIER, subscriberId,
- new String[] { subscriberId },
- new String[0] /* matchWifiNetworkKeys */,
- METERED_YES, ROAMING_ALL,
- DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL, OEM_MANAGED_ALL,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
+ return new NetworkTemplate.Builder(MATCH_ETHERNET).build();
}
private final int mMatchRule;
@@ -353,6 +269,7 @@
* Since the merge set is dynamic, it should <em>not</em> be persisted or
* used for determining equality.
*/
+ @NonNull
private final String[] mMatchSubscriberIds;
@NonNull
@@ -387,9 +304,13 @@
}
}
- /** @hide */
- // TODO: Deprecate this constructor, mark it @UnsupportedAppUsage(maxTargetSdk = S)
- @UnsupportedAppUsage
+ /**
+ * @deprecated Use {@link Builder} to build a template.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "Use {@code Builder} instead.")
public NetworkTemplate(int matchRule, String subscriberId, String wifiNetworkKey) {
this(matchRule, subscriberId, new String[] { subscriberId }, wifiNetworkKey);
}
@@ -410,25 +331,13 @@
}
/** @hide */
- // TODO: Remove it after updating all of the caller.
- public NetworkTemplate(int matchRule, String subscriberId, String[] matchSubscriberIds,
- String wifiNetworkKey, int metered, int roaming, int defaultNetwork, int ratType,
- int oemManaged) {
- this(matchRule, subscriberId, matchSubscriberIds,
- wifiNetworkKey != null ? new String[] { wifiNetworkKey } : new String[0],
- metered, roaming, defaultNetwork, ratType, oemManaged,
- NetworkStatsUtils.SUBSCRIBER_ID_MATCH_RULE_EXACT);
- }
-
- /** @hide */
public NetworkTemplate(int matchRule, String subscriberId, String[] matchSubscriberIds,
String[] matchWifiNetworkKeys, int metered, int roaming,
int defaultNetwork, int ratType, int oemManaged, int subscriberIdMatchRule) {
Objects.requireNonNull(matchWifiNetworkKeys);
+ Objects.requireNonNull(matchSubscriberIds);
mMatchRule = matchRule;
mSubscriberId = subscriberId;
- // TODO: Check whether mMatchSubscriberIds = null or mMatchSubscriberIds = {null} when
- // mSubscriberId is null
mMatchSubscriberIds = matchSubscriberIds;
mMatchWifiNetworkKeys = matchWifiNetworkKeys;
mMetered = metered;
@@ -881,48 +790,29 @@
* For example, given an incoming template matching B, and the currently
* active merge set [A,B], we'd return a new template that primarily matches
* A, but also matches B.
- * TODO: remove and use {@link #normalize(NetworkTemplate, List)}.
*
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.TIRAMISU,
+ publicAlternatives = "There is no alternative for {@code NetworkTemplate.normalize}."
+ + "Callers should have their own logic to merge template for"
+ + " different IMSIs and stop calling this function.")
public static NetworkTemplate normalize(NetworkTemplate template, String[] merged) {
- return normalize(template, Arrays.<String[]>asList(merged));
- }
-
- /**
- * Examine the given template and normalize it.
- * We pick the "lowest" merged subscriber as the primary
- * for key purposes, and expand the template to match all other merged
- * subscribers.
- *
- * There can be multiple merged subscriberIds for multi-SIM devices.
- *
- * <p>
- * For example, given an incoming template matching B, and the currently
- * active merge set [A,B], we'd return a new template that primarily matches
- * A, but also matches B.
- *
- * @hide
- */
- // TODO: @SystemApi when ready.
- public static NetworkTemplate normalize(NetworkTemplate template, List<String[]> mergedList) {
// Now there are several types of network which uses SubscriberId to store network
// information. For instances:
// The TYPE_WIFI with subscriberId means that it is a merged carrier wifi network.
// The TYPE_CARRIER means that the network associate to specific carrier network.
-
if (template.mSubscriberId == null) return template;
- for (String[] merged : mergedList) {
- if (CollectionUtils.contains(merged, template.mSubscriberId)) {
- // Requested template subscriber is part of the merge group; return
- // a template that matches all merged subscribers.
- final String[] matchWifiNetworkKeys = template.mMatchWifiNetworkKeys;
- return new NetworkTemplate(template.mMatchRule, merged[0], merged,
- CollectionUtils.isEmpty(matchWifiNetworkKeys)
- ? null : matchWifiNetworkKeys[0]);
- }
+ if (CollectionUtils.contains(merged, template.mSubscriberId)) {
+ // Requested template subscriber is part of the merge group; return
+ // a template that matches all merged subscribers.
+ final String[] matchWifiNetworkKeys = template.mMatchWifiNetworkKeys;
+ // TODO: Use NetworkTemplate.Builder to build a template after NetworkTemplate
+ // could handle incompatible subscriberIds. See b/217805241.
+ return new NetworkTemplate(template.mMatchRule, merged[0], merged,
+ CollectionUtils.isEmpty(matchWifiNetworkKeys)
+ ? null : matchWifiNetworkKeys[0]);
}
return template;
diff --git a/nearby/halfsheet/Android.bp b/nearby/halfsheet/Android.bp
index c84caa6..2d0d327 100644
--- a/nearby/halfsheet/Android.bp
+++ b/nearby/halfsheet/Android.bp
@@ -43,7 +43,6 @@
"com.google.android.material_material",
"fast-pair-lite-protos",
],
- plugins: ["java_api_finder"],
manifest: "AndroidManifest.xml",
jarjar_rules: ":nearby-jarjar-rules",
apex_available: ["com.android.tethering",],
diff --git a/nearby/halfsheet/res/values-en-rCA/strings.xml b/nearby/halfsheet/res/values-en-rCA/strings.xml
index d4ed675..6094199 100644
--- a/nearby/halfsheet/res/values-en-rCA/strings.xml
+++ b/nearby/halfsheet/res/values-en-rCA/strings.xml
@@ -17,7 +17,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="fast_pair_setup_in_progress" msgid="4158762239172829807">"Starting setup…"</string>
+ <string name="fast_pair_setup_in_progress" msgid="4158762239172829807">"Starting Setup…"</string>
<string name="fast_pair_title_setup" msgid="2894360355540593246">"Set up device"</string>
<string name="fast_pair_device_ready" msgid="2903490346082833101">"Device connected"</string>
<string name="fast_pair_title_fail" msgid="5677174346601290232">"Couldn\'t connect"</string>
diff --git a/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml b/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml
index c490cf8..9827f4e 100644
--- a/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-en-rCA/strings.xml
@@ -17,20 +17,20 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <string name="connectivityResourcesAppLabel" msgid="2476261877900882974">"System connectivity resources"</string>
- <string name="wifi_available_sign_in" msgid="8041178343789805553">"Sign in to a Wi-Fi network"</string>
+ <string name="connectivityResourcesAppLabel" msgid="2476261877900882974">"System Connectivity Resources"</string>
+ <string name="wifi_available_sign_in" msgid="8041178343789805553">"Sign in to Wi-Fi network"</string>
<string name="network_available_sign_in" msgid="2622520134876355561">"Sign in to network"</string>
<!-- no translation found for network_available_sign_in_detailed (8439369644697866359) -->
<skip />
- <string name="wifi_no_internet" msgid="1326348603404555475">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has no Internet access"</string>
+ <string name="wifi_no_internet" msgid="1326348603404555475">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has no internet access"</string>
<string name="wifi_no_internet_detailed" msgid="1746921096565304090">"Tap for options"</string>
- <string name="mobile_no_internet" msgid="4087718456753201450">"Mobile network has no Internet access"</string>
- <string name="other_networks_no_internet" msgid="5693932964749676542">"Network has no Internet access"</string>
+ <string name="mobile_no_internet" msgid="4087718456753201450">"Mobile network has no internet access"</string>
+ <string name="other_networks_no_internet" msgid="5693932964749676542">"Network has no internet access"</string>
<string name="private_dns_broken_detailed" msgid="2677123850463207823">"Private DNS server cannot be accessed"</string>
<string name="network_partial_connectivity" msgid="5549503845834993258">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> has limited connectivity"</string>
<string name="network_partial_connectivity_detailed" msgid="4732435946300249845">"Tap to connect anyway"</string>
<string name="network_switch_metered" msgid="5016937523571166319">"Switched to <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
- <string name="network_switch_metered_detail" msgid="1257300152739542096">"Device uses <xliff:g id="NEW_NETWORK">%1$s</xliff:g> when <xliff:g id="PREVIOUS_NETWORK">%2$s</xliff:g> has no Internet access. Charges may apply."</string>
+ <string name="network_switch_metered_detail" msgid="1257300152739542096">"Device uses <xliff:g id="NEW_NETWORK">%1$s</xliff:g> when <xliff:g id="PREVIOUS_NETWORK">%2$s</xliff:g> has no internet access. Charges may apply."</string>
<string name="network_switch_metered_toast" msgid="70691146054130335">"Switched from <xliff:g id="PREVIOUS_NETWORK">%1$s</xliff:g> to <xliff:g id="NEW_NETWORK">%2$s</xliff:g>"</string>
<string-array name="network_switch_type_name">
<item msgid="3004933964374161223">"mobile data"</item>
diff --git a/service/ServiceConnectivityResources/res/values-eu/strings.xml b/service/ServiceConnectivityResources/res/values-eu/strings.xml
index 2c4e431..9b39fd3 100644
--- a/service/ServiceConnectivityResources/res/values-eu/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-eu/strings.xml
@@ -35,7 +35,7 @@
<string-array name="network_switch_type_name">
<item msgid="3004933964374161223">"datu-konexioa"</item>
<item msgid="5624324321165953608">"Wifia"</item>
- <item msgid="5667906231066981731">"Bluetooth-a"</item>
+ <item msgid="5667906231066981731">"Bluetootha"</item>
<item msgid="346574747471703768">"Ethernet-a"</item>
<item msgid="5734728378097476003">"VPNa"</item>
</string-array>
diff --git a/service/ServiceConnectivityResources/res/values-nb/strings.xml b/service/ServiceConnectivityResources/res/values-nb/strings.xml
index 4439048..fff6530 100644
--- a/service/ServiceConnectivityResources/res/values-nb/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-nb/strings.xml
@@ -18,7 +18,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="connectivityResourcesAppLabel" msgid="2476261877900882974">"Ressurser for systemtilkobling"</string>
- <string name="wifi_available_sign_in" msgid="8041178343789805553">"Logg på Wi-Fi-nettverket"</string>
+ <string name="wifi_available_sign_in" msgid="8041178343789805553">"Logg på Wifi-nettverket"</string>
<string name="network_available_sign_in" msgid="2622520134876355561">"Logg på nettverk"</string>
<!-- no translation found for network_available_sign_in_detailed (8439369644697866359) -->
<skip />
diff --git a/service/ServiceConnectivityResources/res/values-ro/strings.xml b/service/ServiceConnectivityResources/res/values-ro/strings.xml
index 4ff5290..bf4479a 100644
--- a/service/ServiceConnectivityResources/res/values-ro/strings.xml
+++ b/service/ServiceConnectivityResources/res/values-ro/strings.xml
@@ -28,7 +28,7 @@
<string name="other_networks_no_internet" msgid="5693932964749676542">"Rețeaua nu are acces la internet"</string>
<string name="private_dns_broken_detailed" msgid="2677123850463207823">"Serverul DNS privat nu poate fi accesat"</string>
<string name="network_partial_connectivity" msgid="5549503845834993258">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> are conectivitate limitată"</string>
- <string name="network_partial_connectivity_detailed" msgid="4732435946300249845">"Atingeți pentru a vă conecta oricum"</string>
+ <string name="network_partial_connectivity_detailed" msgid="4732435946300249845">"Atinge pentru a te conecta oricum"</string>
<string name="network_switch_metered" msgid="5016937523571166319">"S-a comutat la <xliff:g id="NETWORK_TYPE">%1$s</xliff:g>"</string>
<string name="network_switch_metered_detail" msgid="1257300152739542096">"Dispozitivul foloseÈ™te <xliff:g id="NEW_NETWORK">%1$s</xliff:g> când <xliff:g id="PREVIOUS_NETWORK">%2$s</xliff:g> nu are acces la internet. Se pot aplica taxe."</string>
<string name="network_switch_metered_toast" msgid="70691146054130335">"S-a comutat de la <xliff:g id="PREVIOUS_NETWORK">%1$s</xliff:g> la <xliff:g id="NEW_NETWORK">%2$s</xliff:g>"</string>
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java b/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
index 861acbb..6c2bc19 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
@@ -256,6 +256,9 @@
response = new MdnsResponse(now);
responses.add(response);
}
+ // Set interface index earlier because some responses have PTR record only.
+ // Need to know every response is getting from which interface.
+ response.setInterfaceIndex(interfaceIndex);
response.addPointerRecord((MdnsPointerRecord) record);
}
}
@@ -286,13 +289,13 @@
List<MdnsResponse> matchingResponses =
findResponsesWithHostName(responses, inetRecord.getName());
for (MdnsResponse response : matchingResponses) {
- assignInetRecord(response, inetRecord, interfaceIndex);
+ assignInetRecord(response, inetRecord);
}
} else {
MdnsResponse response =
findResponseWithHostName(responses, inetRecord.getName());
if (response != null) {
- assignInetRecord(response, inetRecord, interfaceIndex);
+ assignInetRecord(response, inetRecord);
}
}
}
@@ -301,14 +304,11 @@
return SUCCESS;
}
- private static void assignInetRecord(
- MdnsResponse response, MdnsInetAddressRecord inetRecord, int interfaceIndex) {
+ private static void assignInetRecord(MdnsResponse response, MdnsInetAddressRecord inetRecord) {
if (inetRecord.getInet4Address() != null) {
response.setInet4AddressRecord(inetRecord);
- response.setInterfaceIndex(interfaceIndex);
} else if (inetRecord.getInet6Address() != null) {
response.setInet6AddressRecord(inetRecord);
- response.setInterfaceIndex(interfaceIndex);
}
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java
index 53e58d1..7a8fcc0 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceBrowserListener.java
@@ -44,9 +44,9 @@
/**
* Called when an mDNS service instance is no longer valid and removed.
*
- * @param serviceInstanceName The service instance name of the removed mDNS service.
+ * @param serviceInfo The service instance of the removed mDNS service.
*/
- void onServiceRemoved(@NonNull String serviceInstanceName);
+ void onServiceRemoved(@NonNull MdnsServiceInfo serviceInfo);
/**
* Called when searching for mDNS service has stopped because of an error.
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
index 8ca71b9..0fd6025 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
@@ -91,8 +91,12 @@
private static MdnsServiceInfo buildMdnsServiceInfoFromResponse(
@NonNull MdnsResponse response, @NonNull String[] serviceTypeLabels) {
- String[] hostName = response.getServiceRecord().getServiceHost();
- int port = response.getServiceRecord().getServicePort();
+ String[] hostName = null;
+ int port = 0;
+ if (response.hasServiceRecord()) {
+ hostName = response.getServiceRecord().getServiceHost();
+ port = response.getServiceRecord().getServicePort();
+ }
String ipv4Address = null;
String ipv6Address = null;
@@ -104,15 +108,17 @@
Inet6Address inet6Address = response.getInet6AddressRecord().getInet6Address();
ipv6Address = (inet6Address == null) ? null : inet6Address.getHostAddress();
}
- if (ipv4Address == null && ipv6Address == null) {
- throw new IllegalArgumentException(
- "Either ipv4Address or ipv6Address must be non-null");
- }
String serviceInstanceName = response.getServiceInstanceName();
if (serviceInstanceName == null) {
throw new IllegalStateException(
"mDNS response must have non-null service instance name");
}
+ List<String> textStrings = null;
+ List<MdnsServiceInfo.TextEntry> textEntries = null;
+ if (response.hasTextRecord()) {
+ textStrings = response.getTextRecord().getStrings();
+ textEntries = response.getTextRecord().getEntries();
+ }
// TODO: Throw an error message if response doesn't have Inet6 or Inet4 address.
return new MdnsServiceInfo(
serviceInstanceName,
@@ -122,8 +128,8 @@
port,
ipv4Address,
ipv6Address,
- response.getTextRecord().getStrings(),
- response.getTextRecord().getEntries(),
+ textStrings,
+ textEntries,
response.getInterfaceIndex());
}
@@ -246,12 +252,14 @@
}
private void onGoodbyeReceived(@Nullable String serviceInstanceName) {
- if (serviceInstanceName == null) {
+ final MdnsResponse response = instanceNameToResponse.remove(serviceInstanceName);
+ if (response == null) {
return;
}
- instanceNameToResponse.remove(serviceInstanceName);
for (MdnsServiceBrowserListener listener : listeners) {
- listener.onServiceRemoved(serviceInstanceName);
+ final MdnsServiceInfo serviceInfo =
+ buildMdnsServiceInfoFromResponse(response, serviceTypeLabels);
+ listener.onServiceRemoved(serviceInfo);
}
}
@@ -425,7 +433,10 @@
String serviceInstanceName =
existingResponse.getServiceInstanceName();
if (serviceInstanceName != null) {
- listener.onServiceRemoved(serviceInstanceName);
+ final MdnsServiceInfo serviceInfo =
+ buildMdnsServiceInfoFromResponse(
+ existingResponse, serviceTypeLabels);
+ listener.onServiceRemoved(serviceInfo);
}
}
}
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index 9b23395..4c9e3a3 100755
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -75,7 +75,6 @@
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PAID;
import static android.net.NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE;
import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
-import static android.net.NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_5;
@@ -251,6 +250,7 @@
import com.android.modules.utils.BasicShellCommandHandler;
import com.android.modules.utils.build.SdkLevel;
import com.android.net.module.util.BaseNetdUnsolicitedEventListener;
+import com.android.net.module.util.BinderUtils;
import com.android.net.module.util.BitUtils;
import com.android.net.module.util.CollectionUtils;
import com.android.net.module.util.DeviceConfigUtils;
@@ -5162,7 +5162,9 @@
description = settingValue + " (?)";
}
pw.println("Avoid bad wifi setting: " + description);
- final Boolean configValue = mMultinetworkPolicyTracker.deviceConfigActivelyPreferBadWifi();
+
+ final Boolean configValue = BinderUtils.withCleanCallingIdentity(
+ () -> mMultinetworkPolicyTracker.deviceConfigActivelyPreferBadWifi());
if (null == configValue) {
description = "unset";
} else if (configValue) {
@@ -8062,10 +8064,6 @@
final boolean oldMetered = prevNc.isMetered();
final boolean newMetered = newNc.isMetered();
final boolean meteredChanged = oldMetered != newMetered;
- final boolean oldTempMetered = prevNc.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
- final boolean newTempMetered = newNc.hasCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
- final boolean tempMeteredChanged = oldTempMetered != newTempMetered;
-
if (meteredChanged) {
maybeNotifyNetworkBlocked(nai, oldMetered, newMetered,
@@ -8076,7 +8074,7 @@
!= newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
// Report changes that are interesting for network statistics tracking.
- if (meteredChanged || roamingChanged || tempMeteredChanged) {
+ if (meteredChanged || roamingChanged) {
notifyIfacesChangedForNetworkStats();
}
diff --git a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
index 192694b..cdf32a4 100644
--- a/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
+++ b/tests/common/java/android/net/netstats/NetworkTemplateTest.kt
@@ -78,7 +78,7 @@
NetworkTemplate.Builder(matchRule).setSubscriberIds(setOf(TEST_IMSI1))
.setMeteredness(METERED_YES).build().let {
val expectedTemplate = NetworkTemplate(matchRule, TEST_IMSI1,
- arrayOf(TEST_IMSI1), arrayOf<String>(), METERED_YES,
+ arrayOf(TEST_IMSI1), emptyArray<String>(), METERED_YES,
ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertEquals(expectedTemplate, it)
@@ -91,7 +91,7 @@
NetworkTemplate.Builder(matchRule).setSubscriberIds(setOf(TEST_IMSI1))
.setRoaming(ROAMING_YES).setMeteredness(METERED_YES).build().let {
val expectedTemplate = NetworkTemplate(matchRule, TEST_IMSI1,
- arrayOf(TEST_IMSI1), arrayOf<String>(), METERED_YES,
+ arrayOf(TEST_IMSI1), emptyArray<String>(), METERED_YES,
ROAMING_YES, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertEquals(expectedTemplate, it)
@@ -107,7 +107,7 @@
// regardless of IMSI. See buildTemplateMobileWildcard.
NetworkTemplate.Builder(MATCH_MOBILE).setMeteredness(METERED_YES).build().let {
val expectedTemplate = NetworkTemplate(MATCH_MOBILE_WILDCARD, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_YES, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -119,7 +119,7 @@
.setMeteredness(METERED_YES).setRatType(TelephonyManager.NETWORK_TYPE_UMTS)
.build().let {
val expectedTemplate = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1,
- arrayOf(TEST_IMSI1), arrayOf<String>(), METERED_YES,
+ arrayOf(TEST_IMSI1), emptyArray<String>(), METERED_YES,
ROAMING_ALL, DEFAULT_NETWORK_ALL, TelephonyManager.NETWORK_TYPE_UMTS,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertEquals(expectedTemplate, it)
@@ -129,7 +129,7 @@
// regardless of Wifi Network Key. See buildTemplateWifiWildcard and buildTemplateWifi.
NetworkTemplate.Builder(MATCH_WIFI).build().let {
val expectedTemplate = NetworkTemplate(MATCH_WIFI_WILDCARD, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -139,7 +139,7 @@
// See buildTemplateWifi(wifiNetworkKey).
NetworkTemplate.Builder(MATCH_WIFI).setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build().let {
val expectedTemplate = NetworkTemplate(MATCH_WIFI, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf(TEST_WIFI_KEY1),
+ emptyArray<String>() /*subscriberIds*/, arrayOf(TEST_WIFI_KEY1),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -161,7 +161,7 @@
listOf(MATCH_ETHERNET, MATCH_BLUETOOTH).forEach { matchRule ->
NetworkTemplate.Builder(matchRule).build().let {
val expectedTemplate = NetworkTemplate(matchRule, null /*subscriberId*/,
- null /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
@@ -196,7 +196,7 @@
// Verify template which matches wifi wildcard with the given empty key set.
NetworkTemplate.Builder(MATCH_WIFI).setWifiNetworkKeys(setOf<String>()).build().let {
val expectedTemplate = NetworkTemplate(MATCH_WIFI_WILDCARD, null /*subscriberId*/,
- arrayOf<String>() /*subscriberIds*/, arrayOf<String>(),
+ emptyArray<String>() /*subscriberIds*/, emptyArray<String>(),
METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, NETWORK_TYPE_ALL,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_ALL)
assertEquals(expectedTemplate, it)
diff --git a/tests/unit/java/android/net/NetworkIdentityTest.kt b/tests/unit/java/android/net/NetworkIdentityTest.kt
index d84328c..9667f8f 100644
--- a/tests/unit/java/android/net/NetworkIdentityTest.kt
+++ b/tests/unit/java/android/net/NetworkIdentityTest.kt
@@ -101,15 +101,15 @@
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
assertFalse(netIdent2.isMetered())
- // Verify network is not metered because it has NET_CAPABILITY_TEMPORARILY_NOT_METERED
- // capability .
+ // In current design, a network that has NET_CAPABILITY_TEMPORARILY_NOT_METERED
+ // capability will be treated as metered.
val capsTempNotMetered = NetworkCapabilities().apply {
setCapability(NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED, true)
}
val netIdent3 = NetworkIdentity.buildNetworkIdentity(mockContext,
buildMobileNetworkStateSnapshot(capsTempNotMetered, TEST_IMSI1),
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
- assertFalse(netIdent3.isMetered())
+ assertTrue(netIdent3.isMetered())
}
@Test
diff --git a/tests/unit/java/android/net/NetworkTemplateTest.kt b/tests/unit/java/android/net/NetworkTemplateTest.kt
index 666da53..3cf0228 100644
--- a/tests/unit/java/android/net/NetworkTemplateTest.kt
+++ b/tests/unit/java/android/net/NetworkTemplateTest.kt
@@ -32,6 +32,7 @@
import android.net.NetworkStats.METERED_NO
import android.net.NetworkStats.METERED_YES
import android.net.NetworkStats.ROAMING_ALL
+import android.net.NetworkTemplate.MATCH_CARRIER
import android.net.NetworkTemplate.MATCH_MOBILE
import android.net.NetworkTemplate.MATCH_MOBILE_WILDCARD
import android.net.NetworkTemplate.MATCH_TEST
@@ -41,12 +42,8 @@
import android.net.NetworkTemplate.OEM_MANAGED_ALL
import android.net.NetworkTemplate.OEM_MANAGED_NO
import android.net.NetworkTemplate.OEM_MANAGED_YES
-import android.net.NetworkTemplate.WIFI_NETWORK_KEY_ALL
-import android.net.NetworkTemplate.buildTemplateCarrierMetered
import android.net.NetworkTemplate.buildTemplateMobileAll
import android.net.NetworkTemplate.buildTemplateMobileWildcard
-import android.net.NetworkTemplate.buildTemplateMobileWithRatType
-import android.net.NetworkTemplate.buildTemplateWifi
import android.net.NetworkTemplate.buildTemplateWifiWildcard
import android.net.NetworkTemplate.normalize
import android.net.wifi.WifiInfo
@@ -144,10 +141,16 @@
@Test
fun testWifiMatches() {
- val templateWifiKey1 = buildTemplateWifi(TEST_WIFI_KEY1)
- val templateWifiKey1ImsiNull = buildTemplateWifi(TEST_WIFI_KEY1, null)
- val templateWifiKey1Imsi1 = buildTemplateWifi(TEST_WIFI_KEY1, TEST_IMSI1)
- val templateWifiKeyAllImsi1 = buildTemplateWifi(WIFI_NETWORK_KEY_ALL, TEST_IMSI1)
+ val templateWifiKey1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
+ val templateWifiKey1ImsiNull = NetworkTemplate.Builder(MATCH_WIFI)
+ .setSubscriberIds(setOf(null))
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
+ val templateWifiKey1Imsi1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setSubscriberIds(setOf(TEST_IMSI1))
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1)).build()
+ val templateWifiKeyAllImsi1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
val identMobile1 = buildNetworkIdentity(mockContext, buildMobileNetworkState(TEST_IMSI1),
false, TelephonyManager.NETWORK_TYPE_UMTS)
@@ -196,8 +199,10 @@
@Test
fun testMobileMatches() {
val templateMobileImsi1 = buildTemplateMobileAll(TEST_IMSI1)
- val templateMobileImsi2WithRatType = buildTemplateMobileWithRatType(TEST_IMSI2,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_YES)
+ val templateMobileImsi2WithRatType = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES)
+ .setSubscriberIds(setOf(TEST_IMSI2))
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
val mobileImsi1 = buildNetworkState(TYPE_MOBILE, TEST_IMSI1, null /* wifiKey */,
OEM_NONE, true /* metered */)
@@ -225,8 +230,8 @@
@Test
fun testMobileWildcardMatches() {
val templateMobileWildcard = buildTemplateMobileWildcard()
- val templateMobileNullImsiWithRatType = buildTemplateMobileWithRatType(null,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_ALL)
+ val templateMobileNullImsiWithRatType = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
val mobileImsi1 = buildMobileNetworkState(TEST_IMSI1)
val identMobile1 = buildNetworkIdentity(mockContext, mobileImsi1,
@@ -277,7 +282,9 @@
@Test
fun testCarrierMeteredMatches() {
- val templateCarrierImsi1Metered = buildTemplateCarrierMetered(TEST_IMSI1)
+ val templateCarrierImsi1Metered = NetworkTemplate.Builder(MATCH_CARRIER)
+ .setMeteredness(METERED_YES)
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
val mobileImsi1 = buildMobileNetworkState(TEST_IMSI1)
val mobileImsi1Unmetered = buildNetworkState(TYPE_MOBILE, TEST_IMSI1,
@@ -322,24 +329,25 @@
// Build UMTS template that matches mobile identities with RAT in the same
// group with any IMSI. See {@link NetworkTemplate#getCollapsedRatType}.
- val templateUmtsMetered = buildTemplateMobileWithRatType(null,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_YES)
+ val templateUmtsMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
// Build normal template that matches mobile identities with any RAT and IMSI.
- val templateAllMetered = buildTemplateMobileWithRatType(null, NETWORK_TYPE_ALL,
- METERED_YES)
+ val templateAllMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES).build()
// Build template with UNKNOWN RAT that matches mobile identities with RAT that
// cannot be determined.
- val templateUnknownMetered =
- buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UNKNOWN,
- METERED_YES)
-
- val templateUmtsNonMetered = buildTemplateMobileWithRatType(null,
- TelephonyManager.NETWORK_TYPE_UMTS, METERED_NO)
- val templateAllNonMetered = buildTemplateMobileWithRatType(null, NETWORK_TYPE_ALL,
- METERED_NO)
- val templateUnknownNonMetered =
- buildTemplateMobileWithRatType(null, TelephonyManager.NETWORK_TYPE_UNKNOWN,
- METERED_NO)
+ val templateUnknownMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_YES)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UNKNOWN).build()
+ val templateUmtsNonMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_NO)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UMTS).build()
+ val templateAllNonMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_NO).build()
+ val templateUnknownNonMetered = NetworkTemplate.Builder(MATCH_MOBILE)
+ .setMeteredness(METERED_NO)
+ .setRatType(TelephonyManager.NETWORK_TYPE_UNKNOWN).build()
val identUmtsMetered = buildNetworkIdentity(
mockContext, stateMobileImsi1Metered, false, TelephonyManager.NETWORK_TYPE_UMTS)
@@ -440,15 +448,15 @@
@Test
fun testParcelUnparcel() {
- val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, null,
- arrayOf<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
+ val templateMobile = NetworkTemplate(MATCH_MOBILE, TEST_IMSI1, emptyArray<String>(),
+ emptyArray<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL,
TelephonyManager.NETWORK_TYPE_LTE, OEM_MANAGED_ALL,
SUBSCRIBER_ID_MATCH_RULE_EXACT)
- val templateWifi = NetworkTemplate(MATCH_WIFI, null, null,
+ val templateWifi = NetworkTemplate(MATCH_WIFI, null, emptyArray<String>(),
arrayOf(TEST_WIFI_KEY1), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0,
OEM_MANAGED_ALL, SUBSCRIBER_ID_MATCH_RULE_EXACT)
- val templateOem = NetworkTemplate(MATCH_MOBILE, null, null,
- arrayOf<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0,
+ val templateOem = NetworkTemplate(MATCH_MOBILE, null, emptyArray<String>(),
+ emptyArray<String>(), METERED_ALL, ROAMING_ALL, DEFAULT_NETWORK_ALL, 0,
OEM_MANAGED_YES, SUBSCRIBER_ID_MATCH_RULE_EXACT)
assertParcelSane(templateMobile, 10)
assertParcelSane(templateWifi, 10)
@@ -553,7 +561,7 @@
@Test
fun testNormalize() {
- var mergedImsiList = listOf(arrayOf(TEST_IMSI1, TEST_IMSI2))
+ var mergedImsiList = arrayOf(TEST_IMSI1, TEST_IMSI2)
val identMobileImsi1 = buildNetworkIdentity(mockContext,
buildMobileNetworkState(TEST_IMSI1), false /* defaultNetwork */,
TelephonyManager.NETWORK_TYPE_UMTS)
@@ -575,12 +583,18 @@
it.assertMatches(identMobileImsi2)
it.assertDoesNotMatch(identMobileImsi3)
}
- normalize(buildTemplateCarrierMetered(TEST_IMSI1), mergedImsiList).also {
+ val templateCarrierImsi1 = NetworkTemplate.Builder(MATCH_CARRIER)
+ .setMeteredness(METERED_YES)
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
+ normalize(templateCarrierImsi1, mergedImsiList).also {
it.assertMatches(identMobileImsi1)
it.assertMatches(identMobileImsi2)
it.assertDoesNotMatch(identMobileImsi3)
}
- normalize(buildTemplateWifi(TEST_WIFI_KEY1, TEST_IMSI1), mergedImsiList).also {
+ val templateWifiKey1Imsi1 = NetworkTemplate.Builder(MATCH_WIFI)
+ .setWifiNetworkKeys(setOf(TEST_WIFI_KEY1))
+ .setSubscriberIds(setOf(TEST_IMSI1)).build()
+ normalize(templateWifiKey1Imsi1, mergedImsiList).also {
it.assertMatches(identWifiImsi1Key1)
it.assertMatches(identWifiImsi2Key1)
it.assertDoesNotMatch(identWifiImsi3WifiKey1)
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index f80b9bd..67cc7bd 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -7336,10 +7336,11 @@
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
reset(mStatsManager);
- // Temp metered change should update ifaces
+ // Temp metered change shouldn't update ifaces
mCellNetworkAgent.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
waitForIdle();
- expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
+ verify(mStatsManager, never()).notifyNetworkStatus(eq(onlyCell()),
+ any(List.class), eq(MOBILE_IFNAME), any(List.class));
reset(mStatsManager);
// Congested change shouldn't update ifaces
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
index 6b10c71..6f8b85a 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsServiceTypeClientTests.java
@@ -24,6 +24,7 @@
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -35,6 +36,7 @@
import static java.nio.charset.StandardCharsets.UTF_8;
import android.annotation.NonNull;
+import android.text.TextUtils;
import com.android.server.connectivity.mdns.MdnsServiceInfo.TextEntry;
import com.android.server.connectivity.mdns.MdnsServiceTypeClient.QueryTaskConfig;
@@ -57,6 +59,7 @@
import java.net.Inet6Address;
import java.net.SocketAddress;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -71,6 +74,7 @@
public class MdnsServiceTypeClientTests {
private static final String SERVICE_TYPE = "_googlecast._tcp.local";
+ private static final String[] SERVICE_TYPE_LABELS = TextUtils.split(SERVICE_TYPE, "\\.");
@Mock
private MdnsServiceBrowserListener mockListenerOne;
@@ -491,17 +495,43 @@
}
@Test
- public void processResponse_goodBye() {
+ public void processResponse_goodBye() throws Exception {
client.startSendAndReceive(mockListenerOne, MdnsSearchOptions.getDefaultOptions());
client.startSendAndReceive(mockListenerTwo, MdnsSearchOptions.getDefaultOptions());
+ final String serviceName = "service-instance-1";
+ final String ipV6Address = "2000:3333::da6c:63ff:fe7c:7483";
+ final int interfaceIndex = 999;
+ // Process the initial response.
+ final MdnsResponse initialResponse =
+ createResponse(
+ serviceName,
+ ipV6Address,
+ 5353 /* port */,
+ Collections.singletonList("ABCDE"),
+ Collections.emptyMap(),
+ interfaceIndex);
+ client.processResponse(initialResponse);
MdnsResponse response = mock(MdnsResponse.class);
- when(response.getServiceInstanceName()).thenReturn("goodbye-service-instance-name");
- when(response.isGoodbye()).thenReturn(true);
+ doReturn("goodbye-service").when(response).getServiceInstanceName();
+ doReturn(interfaceIndex).when(response).getInterfaceIndex();
+ doReturn(true).when(response).isGoodbye();
client.processResponse(response);
+ // Verify onServiceRemoved won't be called if the service is not existed.
+ verify(mockListenerOne, never()).onServiceRemoved(any());
+ verify(mockListenerTwo, never()).onServiceRemoved(any());
- verify(mockListenerOne).onServiceRemoved("goodbye-service-instance-name");
- verify(mockListenerTwo).onServiceRemoved("goodbye-service-instance-name");
+ // Verify onServiceRemoved would be called.
+ doReturn(serviceName).when(response).getServiceInstanceName();
+ client.processResponse(response);
+ verify(mockListenerOne).onServiceRemoved(argThat(
+ info -> serviceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == interfaceIndex));
+ verify(mockListenerTwo).onServiceRemoved(argThat(
+ info -> serviceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == interfaceIndex));
}
@Test
@@ -563,7 +593,7 @@
firstMdnsTask.run();
// Verify onServiceRemoved was not called.
- verify(mockListenerOne, never()).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, never()).onServiceRemoved(any());
}
@Test
@@ -586,7 +616,7 @@
MdnsResponse initialResponse =
createResponse(
serviceInstanceName, "192.168.1.1", 5353, List.of("ABCDE"),
- Map.of());
+ Map.of(), 999 /* interfaceIndex */);
client.processResponse(initialResponse);
// Clear the scheduled runnable.
@@ -597,14 +627,17 @@
firstMdnsTask.run();
// Verify onServiceRemoved was not called.
- verify(mockListenerOne, never()).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, never()).onServiceRemoved(any());
// Simulate the case where the response is after TTL.
when(initialResponse.getServiceRecord().getRemainingTTL(anyLong())).thenReturn((long) 0);
firstMdnsTask.run();
// Verify onServiceRemoved was called.
- verify(mockListenerOne, times(1)).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, times(1)).onServiceRemoved(argThat(
+ info -> serviceInstanceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == 999));
}
@Test
@@ -636,7 +669,7 @@
firstMdnsTask.run();
// Verify onServiceRemoved was not called.
- verify(mockListenerOne, never()).onServiceRemoved(serviceInstanceName);
+ verify(mockListenerOne, never()).onServiceRemoved(any());
}
@Test
@@ -659,7 +692,7 @@
MdnsResponse initialResponse =
createResponse(
serviceInstanceName, "192.168.1.1", 5353, List.of("ABCDE"),
- Map.of());
+ Map.of(), 999 /* interfaceIndex */);
client.processResponse(initialResponse);
// Clear the scheduled runnable.
@@ -669,8 +702,11 @@
when(initialResponse.getServiceRecord().getRemainingTTL(anyLong())).thenReturn((long) 0);
firstMdnsTask.run();
- // Verify onServiceRemoved was not called.
- verify(mockListenerOne, times(1)).onServiceRemoved(serviceInstanceName);
+ // Verify onServiceRemoved was called.
+ verify(mockListenerOne, times(1)).onServiceRemoved(argThat(
+ info -> serviceInstanceName.equals(info.getServiceInstanceName())
+ && Arrays.equals(SERVICE_TYPE_LABELS, info.getServiceType())
+ && info.getInterfaceIndex() == 999));
}
// verifies that the right query was enqueued with the right delay, and send query by executing
diff --git a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
index e8f30d6..d7c90d8 100644
--- a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
+++ b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java
@@ -995,8 +995,8 @@
forcePollAndWaitForIdle();
// Verify service recorded history.
- assertUidTotal(templateMetered5g, UID_RED, 128L, 2L, 128L, 2L, 0);
- assertUidTotal(templateNonMetered5g, UID_RED, 256, 3L, 128L, 5L, 0);
+ assertUidTotal(templateMetered5g, UID_RED, 384L, 5L, 256L, 7L, 0);
+ assertUidTotal(templateNonMetered5g, UID_RED, 0L, 0L, 0L, 0L, 0);
}
@Test
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index 886b4a9..f8f2b6a 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -32,6 +32,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator:buildflags__android_arm64
@@ -52,6 +55,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator:buildflags__android_x86
@@ -72,6 +78,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator:buildflags__android_x86_64
@@ -92,6 +101,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator:buildflags__host
@@ -114,6 +126,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_arm
@@ -134,6 +149,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_arm64
@@ -154,6 +172,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_x86
@@ -174,6 +195,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__android_x86_64
@@ -194,6 +218,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromecast_buildflags__host
@@ -216,6 +243,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_arm
@@ -236,6 +266,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_arm64
@@ -256,6 +289,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_x86
@@ -276,6 +312,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__android_x86_64
@@ -296,6 +335,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:chromeos_buildflags__host
@@ -318,6 +360,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__android_arm
@@ -338,6 +383,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__android_arm64
@@ -358,6 +406,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__android_x86
@@ -378,6 +429,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__android_x86_64
@@ -398,6 +452,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:debugging_buildflags__host
@@ -420,6 +477,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__android_arm
@@ -440,6 +500,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__android_arm64
@@ -460,6 +523,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__android_x86
@@ -480,6 +546,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__android_x86_64
@@ -500,6 +569,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:logging_buildflags__host
@@ -522,6 +594,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc
@@ -787,6 +862,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_arm64
@@ -807,6 +885,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_x86
@@ -827,6 +908,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__android_x86_64
@@ -847,6 +931,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags__host
@@ -869,6 +956,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__android_arm
@@ -889,6 +979,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__android_arm64
@@ -909,6 +1002,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__android_x86
@@ -929,6 +1025,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__android_x86_64
@@ -949,6 +1048,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:anchor_functions_buildflags__host
@@ -971,6 +1073,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:android_runtime_jni_headers__android_arm
@@ -978,8 +1083,6 @@
name: "cronet_aml_base_android_runtime_jni_headers__android_arm",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
@@ -1008,6 +1111,9 @@
"build/gn_helpers.py",
"third_party/android_sdk/public/platforms/android-33/android.jar",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:android_runtime_jni_headers__android_arm64
@@ -1015,8 +1121,6 @@
name: "cronet_aml_base_android_runtime_jni_headers__android_arm64",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
@@ -1045,6 +1149,9 @@
"build/gn_helpers.py",
"third_party/android_sdk/public/platforms/android-33/android.jar",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:android_runtime_jni_headers__android_x86
@@ -1052,8 +1159,6 @@
name: "cronet_aml_base_android_runtime_jni_headers__android_x86",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
@@ -1082,6 +1187,9 @@
"build/gn_helpers.py",
"third_party/android_sdk/public/platforms/android-33/android.jar",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:android_runtime_jni_headers__android_x86_64
@@ -1089,8 +1197,6 @@
name: "cronet_aml_base_android_runtime_jni_headers__android_x86_64",
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/android_runtime_jni_headers " +
"--includes " +
@@ -1119,6 +1225,9 @@
"build/gn_helpers.py",
"third_party/android_sdk/public/platforms/android-33/android.jar",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base
@@ -2221,6 +2330,39 @@
},
}
+// GN: //base:base_android_java_enums_srcjar
+java_genrule {
+ name: "cronet_aml_base_base_android_java_enums_srcjar",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location base/android/application_status_listener.h) " +
+ "$(location base/android/child_process_binding_types.h) " +
+ "$(location base/android/library_loader/library_loader_hooks.h) " +
+ "$(location base/android/linker/modern_linker_jni.h) " +
+ "$(location base/android/task_scheduler/task_runner_android.h) " +
+ "$(location base/memory/memory_pressure_listener.h) " +
+ "$(location base/metrics/histogram_base.h) " +
+ "$(location base/task/task_traits.h)",
+ out: [
+ "base/base_android_java_enums_srcjar.srcjar",
+ ],
+ tool_files: [
+ "base/android/application_status_listener.h",
+ "base/android/child_process_binding_types.h",
+ "base/android/library_loader/library_loader_hooks.h",
+ "base/android/linker/modern_linker_jni.h",
+ "base/android/task_scheduler/task_runner_android.h",
+ "base/memory/memory_pressure_listener.h",
+ "base/metrics/histogram_base.h",
+ "base/task/task_traits.h",
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ ],
+}
+
// GN: //base:base_jni_headers__android_arm
cc_genrule {
name: "cronet_aml_base_base_jni_headers__android_arm",
@@ -2268,8 +2410,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
@@ -2484,6 +2624,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base_jni_headers__android_arm64
@@ -2533,8 +2676,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
@@ -2749,6 +2890,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base_jni_headers__android_x86
@@ -2798,8 +2942,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
@@ -3014,6 +3156,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base_jni_headers__android_x86_64
@@ -3063,8 +3208,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/base/base_jni_headers " +
"--includes " +
@@ -3279,6 +3422,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:base_static
@@ -3399,6 +3545,9 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:build_date__android_arm64
@@ -3412,6 +3561,9 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:build_date__android_x86
@@ -3425,6 +3577,9 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:build_date__android_x86_64
@@ -3438,6 +3593,9 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:build_date__host
@@ -3453,6 +3611,9 @@
tool_files: [
"build/write_build_date_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__android_arm
@@ -3473,6 +3634,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__android_arm64
@@ -3493,6 +3657,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__android_x86
@@ -3513,6 +3680,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__android_x86_64
@@ -3533,6 +3703,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:cfi_buildflags__host
@@ -3555,6 +3728,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__android_arm
@@ -3575,6 +3751,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__android_arm64
@@ -3595,6 +3774,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__android_x86
@@ -3615,6 +3797,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__android_x86_64
@@ -3635,6 +3820,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:clang_profiling_buildflags__host
@@ -3657,6 +3845,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__android_arm
@@ -3677,6 +3868,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__android_arm64
@@ -3697,6 +3891,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__android_x86
@@ -3717,6 +3914,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__android_x86_64
@@ -3737,6 +3937,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:debugging_buildflags__host
@@ -3759,6 +3962,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__android_arm
@@ -3779,6 +3985,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__android_arm64
@@ -3799,6 +4008,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__android_x86
@@ -3819,6 +4031,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__android_x86_64
@@ -3839,6 +4054,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:feature_list_buildflags__host
@@ -3861,6 +4079,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__android_arm
@@ -3881,6 +4102,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__android_arm64
@@ -3901,6 +4125,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__android_x86
@@ -3921,6 +4148,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__android_x86_64
@@ -3941,6 +4171,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:ios_cronet_buildflags__host
@@ -3963,6 +4196,61 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //base:java_features_srcjar
+java_genrule {
+ name: "cronet_aml_base_java_features_srcjar",
+ srcs: [
+ "base/android/base_features.cc",
+ "base/features.cc",
+ "base/task/task_features.cc",
+ ],
+ cmd: "$(location build/android/gyp/java_cpp_features.py) --srcjar " +
+ "$(out) " +
+ "--template " +
+ "$(location base/android/java/src/org/chromium/base/BaseFeatures.java.tmpl) " +
+ "$(location base/android/base_features.cc) " +
+ "$(location base/features.cc) " +
+ "$(location base/task/task_features.cc)",
+ out: [
+ "base/java_features_srcjar.srcjar",
+ ],
+ tool_files: [
+ "base/android/java/src/org/chromium/base/BaseFeatures.java.tmpl",
+ "build/android/gyp/java_cpp_features.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //base:java_switches_srcjar
+java_genrule {
+ name: "cronet_aml_base_java_switches_srcjar",
+ srcs: [
+ "base/base_switches.cc",
+ ],
+ cmd: "$(location build/android/gyp/java_cpp_strings.py) --srcjar " +
+ "$(out) " +
+ "--template " +
+ "$(location base/android/java/src/org/chromium/base/BaseSwitches.java.tmpl) " +
+ "$(location base/base_switches.cc)",
+ out: [
+ "base/java_switches_srcjar.srcjar",
+ ],
+ tool_files: [
+ "base/android/java/src/org/chromium/base/BaseSwitches.java.tmpl",
+ "build/android/gyp/java_cpp_strings.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ ],
}
// GN: //base:logging_buildflags__android_arm
@@ -3983,6 +4271,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__android_arm64
@@ -4003,6 +4294,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__android_x86
@@ -4023,6 +4317,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__android_x86_64
@@ -4043,6 +4340,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:logging_buildflags__host
@@ -4065,6 +4365,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__android_arm
@@ -4085,6 +4388,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__android_arm64
@@ -4105,6 +4411,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__android_x86
@@ -4125,6 +4434,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__android_x86_64
@@ -4145,6 +4457,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:message_pump_buildflags__host
@@ -4167,6 +4482,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/numerics:base_numerics
@@ -4261,6 +4579,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:orderfile_buildflags__android_arm64
@@ -4281,6 +4602,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:orderfile_buildflags__android_x86
@@ -4301,6 +4625,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:orderfile_buildflags__android_x86_64
@@ -4321,6 +4648,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:orderfile_buildflags__host
@@ -4343,6 +4673,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__android_arm
@@ -4363,6 +4696,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__android_arm64
@@ -4383,6 +4719,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__android_x86
@@ -4403,6 +4742,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__android_x86_64
@@ -4423,6 +4765,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:parsing_buildflags__host
@@ -4445,6 +4790,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__android_arm
@@ -4465,6 +4813,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__android_arm64
@@ -4485,6 +4836,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__android_x86
@@ -4505,6 +4859,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__android_x86_64
@@ -4525,6 +4882,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:power_monitor_buildflags__host
@@ -4547,6 +4907,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__android_arm
@@ -4567,6 +4930,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__android_arm64
@@ -4587,6 +4953,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__android_x86
@@ -4607,6 +4976,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__android_x86_64
@@ -4627,6 +4999,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:profiler_buildflags__host
@@ -4649,6 +5024,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__android_arm
@@ -4669,6 +5047,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__android_arm64
@@ -4689,6 +5070,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__android_x86
@@ -4709,6 +5093,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__android_x86_64
@@ -4729,6 +5116,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:sanitizer_buildflags__host
@@ -4751,6 +5141,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__android_arm
@@ -4771,6 +5164,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__android_arm64
@@ -4791,6 +5187,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__android_x86
@@ -4811,6 +5210,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__android_x86_64
@@ -4831,6 +5233,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:synchronization_buildflags__host
@@ -4853,6 +5258,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base/third_party/double_conversion:double_conversion
@@ -5163,6 +5571,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:tracing_buildflags__android_arm64
@@ -5183,6 +5594,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:tracing_buildflags__android_x86
@@ -5203,6 +5617,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:tracing_buildflags__android_x86_64
@@ -5223,6 +5640,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //base:tracing_buildflags__host
@@ -5245,6 +5665,49 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
+}
+
+// GN: //build/android:build_config_gen
+java_genrule {
+ name: "cronet_aml_build_android_build_config_gen",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/build/android/build_config_gen.srcjar " +
+ "--define " +
+ "_ENABLE_ASSERTS " +
+ "../../build/android/java/templates/BuildConfig.template",
+ out: [
+ "build/android/build_config_gen.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/java/templates/BuildConfig.template",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //build/android:native_libraries_gen
+java_genrule {
+ name: "cronet_aml_build_android_native_libraries_gen",
+ cmd: "$(location build/android/gyp/write_native_libraries_java.py) --output " +
+ "$(out) " +
+ "--cpu-family " +
+ "CPU_FAMILY_ARM",
+ out: [
+ "build/android/native_libraries_gen.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/write_native_libraries_java.py",
+ "build/gn_helpers.py",
+ ],
}
// GN: //build:branding_buildflags__android_arm
@@ -5265,6 +5728,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__android_arm64
@@ -5285,6 +5751,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__android_x86
@@ -5305,6 +5774,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__android_x86_64
@@ -5325,6 +5797,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:branding_buildflags__host
@@ -5347,6 +5822,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:buildflag_header_h
@@ -5441,6 +5919,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromecast_buildflags__android_arm64
@@ -5461,6 +5942,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromecast_buildflags__android_x86
@@ -5481,6 +5965,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromecast_buildflags__android_x86_64
@@ -5501,6 +5988,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromecast_buildflags__host
@@ -5523,6 +6013,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__android_arm
@@ -5543,6 +6036,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__android_arm64
@@ -5563,6 +6059,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__android_x86
@@ -5583,6 +6082,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__android_x86_64
@@ -5603,6 +6105,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build:chromeos_buildflags__host
@@ -5625,6 +6130,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__android_arm
@@ -5645,6 +6153,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__android_arm64
@@ -5665,6 +6176,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__android_x86
@@ -5685,6 +6199,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__android_x86_64
@@ -5705,6 +6222,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //build/config/compiler:compiler_buildflags__host
@@ -5727,6 +6247,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //buildtools/third_party/libc++:libc++
@@ -6042,6 +6565,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:buildflags__android_arm64
@@ -6062,6 +6588,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:buildflags__android_x86
@@ -6082,6 +6611,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:buildflags__android_x86_64
@@ -6102,6 +6634,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:cronet
@@ -6147,9 +6682,11 @@
"cronet_aml_url_url",
],
generated_headers: [
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
"cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
],
export_generated_headers: [
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
"cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
],
defaults: [
@@ -6192,6 +6729,7 @@
linker_scripts: [
"base/android/library_loader/anchor_functions.lds",
],
+ stem: "libcronet.109.0.5386.0",
target: {
android_arm: {
generated_headers: [
@@ -6200,7 +6738,6 @@
"cronet_aml_build_chromeos_buildflags__android_arm",
"cronet_aml_components_cronet_android_buildflags__android_arm",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm",
"cronet_aml_components_cronet_cronet_buildflags__android_arm",
"cronet_aml_components_cronet_cronet_version_header_action__android_arm",
"cronet_aml_url_buildflags__android_arm",
@@ -6211,7 +6748,6 @@
"cronet_aml_build_chromeos_buildflags__android_arm",
"cronet_aml_components_cronet_android_buildflags__android_arm",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm",
"cronet_aml_components_cronet_cronet_buildflags__android_arm",
"cronet_aml_components_cronet_cronet_version_header_action__android_arm",
"cronet_aml_url_buildflags__android_arm",
@@ -6224,7 +6760,6 @@
"cronet_aml_build_chromeos_buildflags__android_arm64",
"cronet_aml_components_cronet_android_buildflags__android_arm64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm64",
"cronet_aml_components_cronet_cronet_buildflags__android_arm64",
"cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
"cronet_aml_url_buildflags__android_arm64",
@@ -6235,7 +6770,6 @@
"cronet_aml_build_chromeos_buildflags__android_arm64",
"cronet_aml_components_cronet_android_buildflags__android_arm64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm64",
"cronet_aml_components_cronet_cronet_buildflags__android_arm64",
"cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
"cronet_aml_url_buildflags__android_arm64",
@@ -6251,7 +6785,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_components_cronet_android_buildflags__android_x86",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
"cronet_aml_url_buildflags__android_x86",
@@ -6262,7 +6795,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_components_cronet_android_buildflags__android_x86",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
"cronet_aml_url_buildflags__android_x86",
@@ -6278,7 +6810,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
"cronet_aml_url_buildflags__android_x86_64",
@@ -6289,7 +6820,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
"cronet_aml_url_buildflags__android_x86_64",
@@ -6310,8 +6840,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/cronet/android/cronet_jni_headers " +
"--includes " +
@@ -6351,6 +6879,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:cronet_jni_headers__android_arm64
@@ -6365,8 +6896,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/cronet/android/cronet_jni_headers " +
"--includes " +
@@ -6406,6 +6935,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:cronet_jni_headers__android_x86
@@ -6420,8 +6952,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/cronet/android/cronet_jni_headers " +
"--includes " +
@@ -6461,6 +6991,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet/android:cronet_jni_headers__android_x86_64
@@ -6475,8 +7008,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/cronet/android/cronet_jni_headers " +
"--includes " +
@@ -6516,11 +7047,14 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
-// GN: //components/cronet/android:cronet_jni_registration__android_arm
+// GN: //components/cronet/android:cronet_jni_registration
cc_genrule {
- name: "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm",
+ name: "cronet_aml_components_cronet_android_cronet_jni_registration",
srcs: [
"base/android/java/src/org/chromium/base/ActivityState.java",
"base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
@@ -6809,8 +7343,6 @@
"--header-path " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h " +
"--manual_jni_registration " +
- " " +
- " " +
";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h",
out: [
@@ -6824,11 +7356,14 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
-// GN: //components/cronet/android:cronet_jni_registration__android_arm64
-cc_genrule {
- name: "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm64",
+// GN: //components/cronet/android:cronet_jni_registration
+java_genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_registration__java",
srcs: [
"base/android/java/src/org/chromium/base/ActivityState.java",
"base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
@@ -7117,628 +7652,9 @@
"--header-path " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h " +
"--manual_jni_registration " +
- " " +
- " " +
";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
"$(genDir)/components/cronet/android/cronet_jni_registration.h",
out: [
- "components/cronet/android/cronet_jni_registration.h",
- "components/cronet/android/cronet_jni_registration.srcjar",
- ],
- tool_files: [
- "base/android/jni_generator/jni_generator.py",
- "base/android/jni_generator/jni_registration_generator.py",
- "build/android/gyp/util/__init__.py",
- "build/android/gyp/util/build_utils.py",
- "build/gn_helpers.py",
- ],
-}
-
-// GN: //components/cronet/android:cronet_jni_registration__android_x86
-cc_genrule {
- name: "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
- srcs: [
- "base/android/java/src/org/chromium/base/ActivityState.java",
- "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
- "base/android/java/src/org/chromium/base/ApkAssets.java",
- "base/android/java/src/org/chromium/base/ApplicationStatus.java",
- "base/android/java/src/org/chromium/base/BaseFeatureList.java",
- "base/android/java/src/org/chromium/base/BuildInfo.java",
- "base/android/java/src/org/chromium/base/BundleUtils.java",
- "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
- "base/android/java/src/org/chromium/base/Callback.java",
- "base/android/java/src/org/chromium/base/CallbackController.java",
- "base/android/java/src/org/chromium/base/CollectionUtil.java",
- "base/android/java/src/org/chromium/base/CommandLine.java",
- "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
- "base/android/java/src/org/chromium/base/Consumer.java",
- "base/android/java/src/org/chromium/base/ContentUriUtils.java",
- "base/android/java/src/org/chromium/base/ContextUtils.java",
- "base/android/java/src/org/chromium/base/CpuFeatures.java",
- "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
- "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
- "base/android/java/src/org/chromium/base/EventLog.java",
- "base/android/java/src/org/chromium/base/FeatureList.java",
- "base/android/java/src/org/chromium/base/Features.java",
- "base/android/java/src/org/chromium/base/FieldTrialList.java",
- "base/android/java/src/org/chromium/base/FileUtils.java",
- "base/android/java/src/org/chromium/base/Function.java",
- "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
- "base/android/java/src/org/chromium/base/IntStringCallback.java",
- "base/android/java/src/org/chromium/base/IntentUtils.java",
- "base/android/java/src/org/chromium/base/JNIUtils.java",
- "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
- "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
- "base/android/java/src/org/chromium/base/JniException.java",
- "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
- "base/android/java/src/org/chromium/base/LifetimeAssert.java",
- "base/android/java/src/org/chromium/base/LocaleUtils.java",
- "base/android/java/src/org/chromium/base/Log.java",
- "base/android/java/src/org/chromium/base/MathUtils.java",
- "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
- "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
- "base/android/java/src/org/chromium/base/ObserverList.java",
- "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
- "base/android/java/src/org/chromium/base/PackageUtils.java",
- "base/android/java/src/org/chromium/base/PathService.java",
- "base/android/java/src/org/chromium/base/PathUtils.java",
- "base/android/java/src/org/chromium/base/PiiElider.java",
- "base/android/java/src/org/chromium/base/PowerMonitor.java",
- "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
- "base/android/java/src/org/chromium/base/Predicate.java",
- "base/android/java/src/org/chromium/base/Promise.java",
- "base/android/java/src/org/chromium/base/RadioUtils.java",
- "base/android/java/src/org/chromium/base/StreamUtil.java",
- "base/android/java/src/org/chromium/base/StrictModeContext.java",
- "base/android/java/src/org/chromium/base/ThreadUtils.java",
- "base/android/java/src/org/chromium/base/TimeUtils.java",
- "base/android/java/src/org/chromium/base/TimezoneUtils.java",
- "base/android/java/src/org/chromium/base/TraceEvent.java",
- "base/android/java/src/org/chromium/base/UnguessableToken.java",
- "base/android/java/src/org/chromium/base/UnownedUserData.java",
- "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
- "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
- "base/android/java/src/org/chromium/base/UserData.java",
- "base/android/java/src/org/chromium/base/UserDataHost.java",
- "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
- "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
- "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
- "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
- "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
- "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
- "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
- "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
- "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
- "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
- "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
- "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
- "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
- "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
- "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
- "base/android/java/src/org/chromium/base/library_loader/Linker.java",
- "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
- "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
- "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
- "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
- "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
- "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
- "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
- "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
- "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
- "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
- "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
- "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
- "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
- "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
- "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
- "base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java",
- "base/android/java/src/org/chromium/base/process_launcher/BindService.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildConnectionAllocator.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessConnection.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessLauncher.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnection.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionDelegate.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionFactory.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionImpl.java",
- "base/android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java",
- "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
- "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
- "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
- "base/android/java/src/org/chromium/base/supplier/Supplier.java",
- "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
- "base/android/java/src/org/chromium/base/task/AsyncTask.java",
- "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
- "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
- "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
- "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
- "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
- "base/android/java/src/org/chromium/base/task/PostTask.java",
- "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
- "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
- "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
- "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
- "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
- "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
- "base/android/java/src/org/chromium/base/task/TaskRunner.java",
- "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
- "base/android/java/src/org/chromium/base/task/TaskTraits.java",
- "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
- "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
- "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
- "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
- "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
- "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
- "build/android/java/src/org/chromium/build/annotations/MainDex.java",
- "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
- "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
- "components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java",
- "components/cronet/android/api/src/org/chromium/net/CallbackException.java",
- "components/cronet/android/api/src/org/chromium/net/CronetEngine.java",
- "components/cronet/android/api/src/org/chromium/net/CronetException.java",
- "components/cronet/android/api/src/org/chromium/net/CronetProvider.java",
- "components/cronet/android/api/src/org/chromium/net/ExperimentalBidirectionalStream.java",
- "components/cronet/android/api/src/org/chromium/net/ExperimentalCronetEngine.java",
- "components/cronet/android/api/src/org/chromium/net/ExperimentalUrlRequest.java",
- "components/cronet/android/api/src/org/chromium/net/ICronetEngineBuilder.java",
- "components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java",
- "components/cronet/android/api/src/org/chromium/net/NetworkException.java",
- "components/cronet/android/api/src/org/chromium/net/NetworkQualityRttListener.java",
- "components/cronet/android/api/src/org/chromium/net/NetworkQualityThroughputListener.java",
- "components/cronet/android/api/src/org/chromium/net/QuicException.java",
- "components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java",
- "components/cronet/android/api/src/org/chromium/net/UploadDataProvider.java",
- "components/cronet/android/api/src/org/chromium/net/UploadDataProviders.java",
- "components/cronet/android/api/src/org/chromium/net/UploadDataSink.java",
- "components/cronet/android/api/src/org/chromium/net/UrlRequest.java",
- "components/cronet/android/api/src/org/chromium/net/UrlResponseInfo.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/ByteArrayCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/ContentTypeParametersParser.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/CronetRequestCompletionListener.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/CronetResponse.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/ImplicitFlowControlCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/InMemoryTransformCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/JsonCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/RedirectHandler.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/RedirectHandlers.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/StringCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/UploadDataProviders.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/UrlRequestCallbacks.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeCronetController.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeCronetEngine.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeCronetProvider.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeUrlRequest.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeUrlResponse.java",
- "components/cronet/android/fake/java/org/chromium/net/test/ResponseMatcher.java",
- "components/cronet/android/fake/java/org/chromium/net/test/UrlResponseMatcher.java",
- "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
- "components/cronet/android/java/src/org/chromium/net/impl/InputStreamChannel.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngine.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngineBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaUploadDataSinkBase.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequest.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequestUtils.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderWithLibraryLoaderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetProvider.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
- "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
- "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
- "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
- "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
- "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
- "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
- "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
- "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
- "net/android/java/src/org/chromium/net/DnsStatus.java",
- "net/android/java/src/org/chromium/net/GURLUtils.java",
- "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
- "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
- "net/android/java/src/org/chromium/net/HttpUtil.java",
- "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
- "net/android/java/src/org/chromium/net/NetStringUtil.java",
- "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
- "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
- "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
- "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
- "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
- "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
- "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
- "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
- "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
- "net/android/java/src/org/chromium/net/X509Util.java",
- "url/android/java/src/org/chromium/url/IDNStringUtil.java",
- ],
- cmd: "current_dir=`basename \\`pwd\\``; " +
- "for f in $(in); " +
- "do " +
- "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
- "done; " +
- "python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
- "--depfile " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
- "--sources-files " +
- "$(genDir)/java.sources " +
- "--include_test_only " +
- "--use_proxy_hash " +
- "--header-path " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.h " +
- "--manual_jni_registration " +
- " " +
- " " +
- ";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.h",
- out: [
- "components/cronet/android/cronet_jni_registration.h",
- "components/cronet/android/cronet_jni_registration.srcjar",
- ],
- tool_files: [
- "base/android/jni_generator/jni_generator.py",
- "base/android/jni_generator/jni_registration_generator.py",
- "build/android/gyp/util/__init__.py",
- "build/android/gyp/util/build_utils.py",
- "build/gn_helpers.py",
- ],
-}
-
-// GN: //components/cronet/android:cronet_jni_registration__android_x86_64
-cc_genrule {
- name: "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
- srcs: [
- "base/android/java/src/org/chromium/base/ActivityState.java",
- "base/android/java/src/org/chromium/base/ApiCompatibilityUtils.java",
- "base/android/java/src/org/chromium/base/ApkAssets.java",
- "base/android/java/src/org/chromium/base/ApplicationStatus.java",
- "base/android/java/src/org/chromium/base/BaseFeatureList.java",
- "base/android/java/src/org/chromium/base/BuildInfo.java",
- "base/android/java/src/org/chromium/base/BundleUtils.java",
- "base/android/java/src/org/chromium/base/ByteArrayGenerator.java",
- "base/android/java/src/org/chromium/base/Callback.java",
- "base/android/java/src/org/chromium/base/CallbackController.java",
- "base/android/java/src/org/chromium/base/CollectionUtil.java",
- "base/android/java/src/org/chromium/base/CommandLine.java",
- "base/android/java/src/org/chromium/base/CommandLineInitUtil.java",
- "base/android/java/src/org/chromium/base/Consumer.java",
- "base/android/java/src/org/chromium/base/ContentUriUtils.java",
- "base/android/java/src/org/chromium/base/ContextUtils.java",
- "base/android/java/src/org/chromium/base/CpuFeatures.java",
- "base/android/java/src/org/chromium/base/DiscardableReferencePool.java",
- "base/android/java/src/org/chromium/base/EarlyTraceEvent.java",
- "base/android/java/src/org/chromium/base/EventLog.java",
- "base/android/java/src/org/chromium/base/FeatureList.java",
- "base/android/java/src/org/chromium/base/Features.java",
- "base/android/java/src/org/chromium/base/FieldTrialList.java",
- "base/android/java/src/org/chromium/base/FileUtils.java",
- "base/android/java/src/org/chromium/base/Function.java",
- "base/android/java/src/org/chromium/base/ImportantFileWriterAndroid.java",
- "base/android/java/src/org/chromium/base/IntStringCallback.java",
- "base/android/java/src/org/chromium/base/IntentUtils.java",
- "base/android/java/src/org/chromium/base/JNIUtils.java",
- "base/android/java/src/org/chromium/base/JavaExceptionReporter.java",
- "base/android/java/src/org/chromium/base/JavaHandlerThread.java",
- "base/android/java/src/org/chromium/base/JniException.java",
- "base/android/java/src/org/chromium/base/JniStaticTestMocker.java",
- "base/android/java/src/org/chromium/base/LifetimeAssert.java",
- "base/android/java/src/org/chromium/base/LocaleUtils.java",
- "base/android/java/src/org/chromium/base/Log.java",
- "base/android/java/src/org/chromium/base/MathUtils.java",
- "base/android/java/src/org/chromium/base/MemoryPressureListener.java",
- "base/android/java/src/org/chromium/base/NativeLibraryLoadedStatus.java",
- "base/android/java/src/org/chromium/base/ObserverList.java",
- "base/android/java/src/org/chromium/base/PackageManagerUtils.java",
- "base/android/java/src/org/chromium/base/PackageUtils.java",
- "base/android/java/src/org/chromium/base/PathService.java",
- "base/android/java/src/org/chromium/base/PathUtils.java",
- "base/android/java/src/org/chromium/base/PiiElider.java",
- "base/android/java/src/org/chromium/base/PowerMonitor.java",
- "base/android/java/src/org/chromium/base/PowerMonitorForQ.java",
- "base/android/java/src/org/chromium/base/Predicate.java",
- "base/android/java/src/org/chromium/base/Promise.java",
- "base/android/java/src/org/chromium/base/RadioUtils.java",
- "base/android/java/src/org/chromium/base/StreamUtil.java",
- "base/android/java/src/org/chromium/base/StrictModeContext.java",
- "base/android/java/src/org/chromium/base/ThreadUtils.java",
- "base/android/java/src/org/chromium/base/TimeUtils.java",
- "base/android/java/src/org/chromium/base/TimezoneUtils.java",
- "base/android/java/src/org/chromium/base/TraceEvent.java",
- "base/android/java/src/org/chromium/base/UnguessableToken.java",
- "base/android/java/src/org/chromium/base/UnownedUserData.java",
- "base/android/java/src/org/chromium/base/UnownedUserDataHost.java",
- "base/android/java/src/org/chromium/base/UnownedUserDataKey.java",
- "base/android/java/src/org/chromium/base/UserData.java",
- "base/android/java/src/org/chromium/base/UserDataHost.java",
- "base/android/java/src/org/chromium/base/WrappedClassLoader.java",
- "base/android/java/src/org/chromium/base/annotations/AccessedByNative.java",
- "base/android/java/src/org/chromium/base/annotations/CalledByNative.java",
- "base/android/java/src/org/chromium/base/annotations/CalledByNativeForTesting.java",
- "base/android/java/src/org/chromium/base/annotations/CalledByNativeUnchecked.java",
- "base/android/java/src/org/chromium/base/annotations/JNIAdditionalImport.java",
- "base/android/java/src/org/chromium/base/annotations/JNINamespace.java",
- "base/android/java/src/org/chromium/base/annotations/JniIgnoreNatives.java",
- "base/android/java/src/org/chromium/base/annotations/NativeClassQualifiedName.java",
- "base/android/java/src/org/chromium/base/annotations/NativeMethods.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForM.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForN.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForO.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForOMR1.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForP.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForQ.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForR.java",
- "base/android/java/src/org/chromium/base/compat/ApiHelperForS.java",
- "base/android/java/src/org/chromium/base/jank_tracker/DummyJankTracker.java",
- "base/android/java/src/org/chromium/base/jank_tracker/FrameMetrics.java",
- "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsListener.java",
- "base/android/java/src/org/chromium/base/jank_tracker/FrameMetricsStore.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankActivityTracker.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankMetricCalculator.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankMetricUMARecorder.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankMetrics.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankReportingRunnable.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankReportingScheduler.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankScenario.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankTracker.java",
- "base/android/java/src/org/chromium/base/jank_tracker/JankTrackerImpl.java",
- "base/android/java/src/org/chromium/base/library_loader/LegacyLinker.java",
- "base/android/java/src/org/chromium/base/library_loader/Linker.java",
- "base/android/java/src/org/chromium/base/library_loader/LinkerJni.java",
- "base/android/java/src/org/chromium/base/library_loader/LoaderErrors.java",
- "base/android/java/src/org/chromium/base/library_loader/ModernLinker.java",
- "base/android/java/src/org/chromium/base/library_loader/ModernLinkerJni.java",
- "base/android/java/src/org/chromium/base/library_loader/NativeLibraryPreloader.java",
- "base/android/java/src/org/chromium/base/library_loader/ProcessInitException.java",
- "base/android/java/src/org/chromium/base/lifetime/DestroyChecker.java",
- "base/android/java/src/org/chromium/base/lifetime/Destroyable.java",
- "base/android/java/src/org/chromium/base/memory/JavaHeapDumpGenerator.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPressureCallback.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPressureMonitor.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPressureUma.java",
- "base/android/java/src/org/chromium/base/memory/MemoryPurgeManager.java",
- "base/android/java/src/org/chromium/base/metrics/CachingUmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/NativeUmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/NoopUmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/RecordHistogram.java",
- "base/android/java/src/org/chromium/base/metrics/RecordUserAction.java",
- "base/android/java/src/org/chromium/base/metrics/ScopedSysTraceEvent.java",
- "base/android/java/src/org/chromium/base/metrics/StatisticsRecorderAndroid.java",
- "base/android/java/src/org/chromium/base/metrics/TimingMetric.java",
- "base/android/java/src/org/chromium/base/metrics/UmaRecorder.java",
- "base/android/java/src/org/chromium/base/metrics/UmaRecorderHolder.java",
- "base/android/java/src/org/chromium/base/multidex/ChromiumMultiDexInstaller.java",
- "base/android/java/src/org/chromium/base/process_launcher/BindService.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildConnectionAllocator.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessConnection.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessConstants.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessLauncher.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildProcessServiceDelegate.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnection.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionDelegate.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionFactory.java",
- "base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionImpl.java",
- "base/android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java",
- "base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/ObservableSupplierImpl.java",
- "base/android/java/src/org/chromium/base/supplier/OneShotCallback.java",
- "base/android/java/src/org/chromium/base/supplier/OneshotSupplier.java",
- "base/android/java/src/org/chromium/base/supplier/OneshotSupplierImpl.java",
- "base/android/java/src/org/chromium/base/supplier/Supplier.java",
- "base/android/java/src/org/chromium/base/supplier/UnownedUserDataSupplier.java",
- "base/android/java/src/org/chromium/base/task/AsyncTask.java",
- "base/android/java/src/org/chromium/base/task/BackgroundOnlyAsyncTask.java",
- "base/android/java/src/org/chromium/base/task/ChainedTasks.java",
- "base/android/java/src/org/chromium/base/task/ChoreographerTaskRunner.java",
- "base/android/java/src/org/chromium/base/task/ChromeThreadPoolExecutor.java",
- "base/android/java/src/org/chromium/base/task/DefaultTaskExecutor.java",
- "base/android/java/src/org/chromium/base/task/PostTask.java",
- "base/android/java/src/org/chromium/base/task/SequencedTaskRunner.java",
- "base/android/java/src/org/chromium/base/task/SequencedTaskRunnerImpl.java",
- "base/android/java/src/org/chromium/base/task/SerialExecutor.java",
- "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunner.java",
- "base/android/java/src/org/chromium/base/task/SingleThreadTaskRunnerImpl.java",
- "base/android/java/src/org/chromium/base/task/TaskExecutor.java",
- "base/android/java/src/org/chromium/base/task/TaskRunner.java",
- "base/android/java/src/org/chromium/base/task/TaskRunnerImpl.java",
- "base/android/java/src/org/chromium/base/task/TaskTraits.java",
- "base/android/java/src/org/chromium/base/task/TaskTraitsExtensionDescriptor.java",
- "build/android/java/src/org/chromium/build/annotations/AlwaysInline.java",
- "build/android/java/src/org/chromium/build/annotations/CheckDiscard.java",
- "build/android/java/src/org/chromium/build/annotations/DoNotClassMerge.java",
- "build/android/java/src/org/chromium/build/annotations/DoNotInline.java",
- "build/android/java/src/org/chromium/build/annotations/IdentifierNameString.java",
- "build/android/java/src/org/chromium/build/annotations/MainDex.java",
- "build/android/java/src/org/chromium/build/annotations/MockedInTests.java",
- "build/android/java/src/org/chromium/build/annotations/UsedByReflection.java",
- "components/cronet/android/api/src/org/chromium/net/BidirectionalStream.java",
- "components/cronet/android/api/src/org/chromium/net/CallbackException.java",
- "components/cronet/android/api/src/org/chromium/net/CronetEngine.java",
- "components/cronet/android/api/src/org/chromium/net/CronetException.java",
- "components/cronet/android/api/src/org/chromium/net/CronetProvider.java",
- "components/cronet/android/api/src/org/chromium/net/ExperimentalBidirectionalStream.java",
- "components/cronet/android/api/src/org/chromium/net/ExperimentalCronetEngine.java",
- "components/cronet/android/api/src/org/chromium/net/ExperimentalUrlRequest.java",
- "components/cronet/android/api/src/org/chromium/net/ICronetEngineBuilder.java",
- "components/cronet/android/api/src/org/chromium/net/InlineExecutionProhibitedException.java",
- "components/cronet/android/api/src/org/chromium/net/NetworkException.java",
- "components/cronet/android/api/src/org/chromium/net/NetworkQualityRttListener.java",
- "components/cronet/android/api/src/org/chromium/net/NetworkQualityThroughputListener.java",
- "components/cronet/android/api/src/org/chromium/net/QuicException.java",
- "components/cronet/android/api/src/org/chromium/net/RequestFinishedInfo.java",
- "components/cronet/android/api/src/org/chromium/net/UploadDataProvider.java",
- "components/cronet/android/api/src/org/chromium/net/UploadDataProviders.java",
- "components/cronet/android/api/src/org/chromium/net/UploadDataSink.java",
- "components/cronet/android/api/src/org/chromium/net/UrlRequest.java",
- "components/cronet/android/api/src/org/chromium/net/UrlResponseInfo.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/ByteArrayCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/ContentTypeParametersParser.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/CronetRequestCompletionListener.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/CronetResponse.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/ImplicitFlowControlCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/InMemoryTransformCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/JsonCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/RedirectHandler.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/RedirectHandlers.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/StringCronetCallback.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/UploadDataProviders.java",
- "components/cronet/android/api/src/org/chromium/net/apihelpers/UrlRequestCallbacks.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeCronetController.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeCronetEngine.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeCronetProvider.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeUrlRequest.java",
- "components/cronet/android/fake/java/org/chromium/net/test/FakeUrlResponse.java",
- "components/cronet/android/fake/java/org/chromium/net/test/ResponseMatcher.java",
- "components/cronet/android/fake/java/org/chromium/net/test/UrlResponseMatcher.java",
- "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/BidirectionalStreamNetworkException.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CallbackExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBase.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetEngineBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetLogger.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetLoggerFactory.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetManifest.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetMetrics.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java",
- "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java",
- "components/cronet/android/java/src/org/chromium/net/impl/InputStreamChannel.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngine.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaCronetEngineBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaCronetProvider.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaUploadDataSinkBase.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequest.java",
- "components/cronet/android/java/src/org/chromium/net/impl/JavaUrlRequestUtils.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetEngineBuilderWithLibraryLoaderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NativeCronetProvider.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NetworkExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/NoOpLogger.java",
- "components/cronet/android/java/src/org/chromium/net/impl/Preconditions.java",
- "components/cronet/android/java/src/org/chromium/net/impl/QuicExceptionImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/RequestFinishedInfoImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBase.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UrlRequestBuilderImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UrlResponseInfoImpl.java",
- "components/cronet/android/java/src/org/chromium/net/impl/UserAgent.java",
- "components/cronet/android/java/src/org/chromium/net/impl/VersionSafeCallbacks.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetBufferedOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetChunkedOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetFixedModeOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLConnection.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetHttpURLStreamHandler.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetInputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetOutputStream.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/CronetURLStreamHandlerFactory.java",
- "components/cronet/android/java/src/org/chromium/net/urlconnection/MessageLoop.java",
- "net/android/java/src/org/chromium/net/AndroidCertVerifyResult.java",
- "net/android/java/src/org/chromium/net/AndroidKeyStore.java",
- "net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java",
- "net/android/java/src/org/chromium/net/AndroidTrafficStats.java",
- "net/android/java/src/org/chromium/net/ChromiumNetworkAdapter.java",
- "net/android/java/src/org/chromium/net/DnsStatus.java",
- "net/android/java/src/org/chromium/net/GURLUtils.java",
- "net/android/java/src/org/chromium/net/HttpNegotiateAuthenticator.java",
- "net/android/java/src/org/chromium/net/HttpNegotiateConstants.java",
- "net/android/java/src/org/chromium/net/HttpUtil.java",
- "net/android/java/src/org/chromium/net/MimeTypeFilter.java",
- "net/android/java/src/org/chromium/net/NetStringUtil.java",
- "net/android/java/src/org/chromium/net/NetworkActiveNotifier.java",
- "net/android/java/src/org/chromium/net/NetworkChangeNotifier.java",
- "net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java",
- "net/android/java/src/org/chromium/net/NetworkTrafficAnnotationTag.java",
- "net/android/java/src/org/chromium/net/ProxyBroadcastReceiver.java",
- "net/android/java/src/org/chromium/net/ProxyChangeListener.java",
- "net/android/java/src/org/chromium/net/RegistrationPolicyAlwaysRegister.java",
- "net/android/java/src/org/chromium/net/RegistrationPolicyApplicationStatus.java",
- "net/android/java/src/org/chromium/net/ThreadStatsUid.java",
- "net/android/java/src/org/chromium/net/X509Util.java",
- "url/android/java/src/org/chromium/url/IDNStringUtil.java",
- ],
- cmd: "current_dir=`basename \\`pwd\\``; " +
- "for f in $(in); " +
- "do " +
- "echo \"../$$current_dir/$$f\" >> $(genDir)/java.sources; " +
- "done; " +
- "python3 $(location base/android/jni_generator/jni_registration_generator.py) --srcjar-path " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.srcjar " +
- "--depfile " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.d " +
- "--sources-files " +
- "$(genDir)/java.sources " +
- "--include_test_only " +
- "--use_proxy_hash " +
- "--header-path " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.h " +
- "--manual_jni_registration " +
- " " +
- " " +
- ";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' " +
- "$(genDir)/components/cronet/android/cronet_jni_registration.h",
- out: [
- "components/cronet/android/cronet_jni_registration.h",
"components/cronet/android/cronet_jni_registration.srcjar",
],
tool_files: [
@@ -7790,6 +7706,7 @@
"cronet_aml_url_url",
],
generated_headers: [
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
"cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
],
defaults: [
@@ -7841,7 +7758,6 @@
"cronet_aml_build_chromeos_buildflags__android_arm",
"cronet_aml_components_cronet_android_buildflags__android_arm",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_arm",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm",
"cronet_aml_components_cronet_cronet_buildflags__android_arm",
"cronet_aml_components_cronet_cronet_version_header_action__android_arm",
"cronet_aml_url_buildflags__android_arm",
@@ -7854,7 +7770,6 @@
"cronet_aml_build_chromeos_buildflags__android_arm64",
"cronet_aml_components_cronet_android_buildflags__android_arm64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_arm64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_arm64",
"cronet_aml_components_cronet_cronet_buildflags__android_arm64",
"cronet_aml_components_cronet_cronet_version_header_action__android_arm64",
"cronet_aml_url_buildflags__android_arm64",
@@ -7870,7 +7785,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86",
"cronet_aml_components_cronet_android_buildflags__android_x86",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86",
"cronet_aml_components_cronet_cronet_buildflags__android_x86",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86",
"cronet_aml_url_buildflags__android_x86",
@@ -7886,7 +7800,6 @@
"cronet_aml_build_chromeos_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_buildflags__android_x86_64",
"cronet_aml_components_cronet_android_cronet_jni_headers__android_x86_64",
- "cronet_aml_components_cronet_android_cronet_jni_registration__android_x86_64",
"cronet_aml_components_cronet_cronet_buildflags__android_x86_64",
"cronet_aml_components_cronet_cronet_version_header_action__android_x86_64",
"cronet_aml_url_buildflags__android_x86_64",
@@ -7895,6 +7808,209 @@
},
}
+// GN: //components/cronet/android:http_cache_type_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_http_cache_type_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location components/cronet/url_request_context_config.h)",
+ out: [
+ "components/cronet/android/http_cache_type_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/url_request_context_config.h",
+ ],
+}
+
+// GN: //components/cronet/android:implementation_api_version
+java_genrule {
+ name: "cronet_aml_components_cronet_android_implementation_api_version",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-f " +
+ "$(location build/util/LASTCHANGE) " +
+ "-e " +
+ "'API_LEVEL=20' " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template)",
+ out: [
+ "components/cronet/android/templates/org/chromium/net/impl/ImplVersion.java",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/android/java/src/org/chromium/net/impl/ImplVersion.template",
+ ],
+}
+
+// GN: //components/cronet/android:integrated_mode_state
+java_genrule {
+ name: "cronet_aml_components_cronet_android_integrated_mode_state",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/components/cronet/android/integrated_mode_state.srcjar " +
+ "../../components/cronet/android/java/src/org/chromium/net/impl/IntegratedModeState.template",
+ out: [
+ "components/cronet/android/integrated_mode_state.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/android/java/src/org/chromium/net/impl/IntegratedModeState.template",
+ ],
+}
+
+// GN: //components/cronet/android:interface_api_version
+java_genrule {
+ name: "cronet_aml_components_cronet_android_interface_api_version",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-f " +
+ "$(location build/util/LASTCHANGE) " +
+ "-e " +
+ "'API_LEVEL=20' " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/android/api/src/org/chromium/net/ApiVersion.template)",
+ out: [
+ "components/cronet/android/templates/org/chromium/net/ApiVersion.java",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/android/api/src/org/chromium/net/ApiVersion.template",
+ ],
+}
+
+// GN: //components/cronet/android:load_states_list
+java_genrule {
+ name: "cronet_aml_components_cronet_android_load_states_list",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/components/cronet/android/load_states_list.srcjar " +
+ "../../components/cronet/android/java/src/org/chromium/net/impl/LoadState.template",
+ out: [
+ "components/cronet/android/load_states_list.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/android/java/src/org/chromium/net/impl/LoadState.template",
+ "net/base/load_states_list.h",
+ ],
+}
+
+// GN: //components/cronet/android:net_idempotency_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_net_idempotency_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/base/idempotency.h)",
+ out: [
+ "components/cronet/android/net_idempotency_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/base/idempotency.h",
+ ],
+}
+
+// GN: //components/cronet/android:net_request_priority_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_net_request_priority_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/base/request_priority.h)",
+ out: [
+ "components/cronet/android/net_request_priority_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/base/request_priority.h",
+ ],
+}
+
+// GN: //components/cronet/android:network_quality_observation_source_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_network_quality_observation_source_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/nqe/network_quality_observation_source.h)",
+ out: [
+ "components/cronet/android/network_quality_observation_source_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/nqe/network_quality_observation_source.h",
+ ],
+}
+
+// GN: //components/cronet/android:rtt_throughput_values_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_rtt_throughput_values_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/nqe/network_quality.h)",
+ out: [
+ "components/cronet/android/rtt_throughput_values_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/nqe/network_quality.h",
+ ],
+}
+
+// GN: //components/cronet/android:url_request_error_java
+java_genrule {
+ name: "cronet_aml_components_cronet_android_url_request_error_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location components/cronet/android/url_request_error.h)",
+ out: [
+ "components/cronet/android/url_request_error_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "components/cronet/android/url_request_error.h",
+ ],
+}
+
// GN: //components/cronet:cronet_buildflags__android_arm
cc_genrule {
name: "cronet_aml_components_cronet_cronet_buildflags__android_arm",
@@ -7913,6 +8029,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_buildflags__android_arm64
@@ -7933,6 +8052,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_buildflags__android_x86
@@ -7953,6 +8075,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_buildflags__android_x86_64
@@ -7973,6 +8098,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_common
@@ -8154,8 +8282,7 @@
cmd: "$(location build/util/version.py) -f " +
"$(location chrome/VERSION) " +
"-e " +
- "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
- " " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
"-o " +
"$(out) " +
"$(location components/cronet/version.h.in)",
@@ -8169,6 +8296,9 @@
"chrome/VERSION",
"components/cronet/version.h.in",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_version_header_action__android_arm64
@@ -8177,8 +8307,7 @@
cmd: "$(location build/util/version.py) -f " +
"$(location chrome/VERSION) " +
"-e " +
- "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
- " " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
"-o " +
"$(out) " +
"$(location components/cronet/version.h.in)",
@@ -8192,6 +8321,9 @@
"chrome/VERSION",
"components/cronet/version.h.in",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_version_header_action__android_x86
@@ -8200,8 +8332,7 @@
cmd: "$(location build/util/version.py) -f " +
"$(location chrome/VERSION) " +
"-e " +
- "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
- " " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
"-o " +
"$(out) " +
"$(location components/cronet/version.h.in)",
@@ -8215,6 +8346,9 @@
"chrome/VERSION",
"components/cronet/version.h.in",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:cronet_version_header_action__android_x86_64
@@ -8223,8 +8357,7 @@
cmd: "$(location build/util/version.py) -f " +
"$(location chrome/VERSION) " +
"-e " +
- "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
- " " +
+ "'VERSION_FULL=\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
"-o " +
"$(out) " +
"$(location components/cronet/version.h.in)",
@@ -8238,6 +8371,9 @@
"chrome/VERSION",
"components/cronet/version.h.in",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/cronet:metrics_util
@@ -8713,6 +8849,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs/android:jni_headers__android_arm
@@ -8723,8 +8862,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/prefs/android/jni_headers " +
"--includes " +
@@ -8744,6 +8881,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs/android:jni_headers__android_arm64
@@ -8754,8 +8894,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/prefs/android/jni_headers " +
"--includes " +
@@ -8775,6 +8913,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs/android:jni_headers__android_x86
@@ -8785,8 +8926,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/prefs/android/jni_headers " +
"--includes " +
@@ -8806,6 +8945,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs/android:jni_headers__android_x86_64
@@ -8816,8 +8958,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/components/prefs/android/jni_headers " +
"--includes " +
@@ -8837,6 +8977,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //components/prefs:prefs
@@ -8995,6 +9138,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:buildflags__android_arm64
@@ -9015,6 +9161,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:buildflags__android_x86
@@ -9035,6 +9184,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:buildflags__android_x86_64
@@ -9055,6 +9207,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:buildflags__host
@@ -9077,6 +9232,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //crypto:crypto
@@ -9263,6 +9421,10 @@
"-fvisibility=hidden",
],
stl: "none",
+ apex_available: [
+ "com.android.tethering",
+ ],
+ min_sdk_version: "29",
target: {
android: {
header_libs: [
@@ -9460,6 +9622,8 @@
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionFactory.java",
"base/android/java/src/org/chromium/base/process_launcher/ChildServiceConnectionImpl.java",
"base/android/java/src/org/chromium/base/process_launcher/FileDescriptorInfo.java",
+ "base/android/java/src/org/chromium/base/process_launcher/IChildProcessService.aidl",
+ "base/android/java/src/org/chromium/base/process_launcher/IParentProcess.aidl",
"base/android/java/src/org/chromium/base/supplier/BooleanSupplier.java",
"base/android/java/src/org/chromium/base/supplier/DestroyableObservableSupplier.java",
"base/android/java/src/org/chromium/base/supplier/ObservableSupplier.java",
@@ -9603,6 +9767,58 @@
],
}
+// GN: //net/android:net_android_java_enums_srcjar
+java_genrule {
+ name: "cronet_aml_net_android_net_android_java_enums_srcjar",
+ srcs: [
+ "net/android/network_change_notifier_android.cc",
+ "net/android/traffic_stats.cc",
+ "net/socket/socket_tag.cc",
+ ],
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/base/network_change_notifier.h) " +
+ "$(location net/socket/socket_tag.cc) " +
+ "$(location net/android/cert_verify_result_android.h) " +
+ "$(location net/android/keystore.h) " +
+ "$(location net/android/network_change_notifier_android.cc) " +
+ "$(location net/android/traffic_stats.cc)",
+ out: [
+ "net/android/net_android_java_enums_srcjar.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/android/cert_verify_result_android.h",
+ "net/android/keystore.h",
+ "net/base/network_change_notifier.h",
+ ],
+}
+
+// GN: //net/android:net_errors_java
+java_genrule {
+ name: "cronet_aml_net_android_net_errors_java",
+ cmd: "$(location build/android/gyp/gcc_preprocess.py) --include-dirs " +
+ "[\"../../\", \"gen\"] " +
+ "--output " +
+ "gen/net/android/net_errors_java.srcjar " +
+ "../../net/android/java/NetError.template",
+ out: [
+ "net/android/net_errors_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/gcc_preprocess.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ "net/android/java/NetError.template",
+ "net/base/net_error_list.h",
+ ],
+}
+
// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_arm
cc_genrule {
name: "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains__android_arm",
@@ -9652,6 +9868,9 @@
"net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
"net/tools/dafsa/make_dafsa.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_arm64
@@ -9703,6 +9922,9 @@
"net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
"net/tools/dafsa/make_dafsa.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_x86
@@ -9754,6 +9976,9 @@
"net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
"net/tools/dafsa/make_dafsa.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/base/registry_controlled_domains:registry_controlled_domains__android_x86_64
@@ -9805,6 +10030,9 @@
"net/base/registry_controlled_domains/effective_tld_names_unittest6.gperf",
"net/tools/dafsa/make_dafsa.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:buildflags__android_arm
@@ -9825,6 +10053,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:buildflags__android_arm64
@@ -9845,6 +10076,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:buildflags__android_x86
@@ -9865,6 +10099,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:buildflags__android_x86_64
@@ -9885,6 +10122,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:constants
@@ -9970,6 +10210,9 @@
"net/data/ssl/chrome_root_store/root_store.certs",
"net/data/ssl/chrome_root_store/root_store.textproto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_arm64
@@ -9993,6 +10236,9 @@
"net/data/ssl/chrome_root_store/root_store.certs",
"net/data/ssl/chrome_root_store/root_store.textproto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_x86
@@ -10016,6 +10262,9 @@
"net/data/ssl/chrome_root_store/root_store.certs",
"net/data/ssl/chrome_root_store/root_store.textproto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/data/ssl/chrome_root_store:gen_root_store_inc__android_x86_64
@@ -10039,6 +10288,9 @@
"net/data/ssl/chrome_root_store/root_store.certs",
"net/data/ssl/chrome_root_store/root_store.textproto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/dns:dns
@@ -10858,6 +11110,25 @@
},
}
+// GN: //net:effective_connection_type_java
+java_genrule {
+ name: "cronet_aml_net_effective_connection_type_java",
+ cmd: "$(location build/android/gyp/java_cpp_enum.py) --srcjar " +
+ "$(out) " +
+ "$(location net/nqe/effective_connection_type.h)",
+ out: [
+ "net/effective_connection_type_java.srcjar",
+ ],
+ tool_files: [
+ "build/android/gyp/java_cpp_enum.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/android/gyp/util/java_cpp_utils.py",
+ "build/gn_helpers.py",
+ "net/nqe/effective_connection_type.h",
+ ],
+}
+
// GN: //net/http:transport_security_state_generated_files
cc_object {
name: "cronet_aml_net_http_transport_security_state_generated_files",
@@ -11011,6 +11282,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:ios_cronet_buildflags__android_arm64
@@ -11031,6 +11305,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:ios_cronet_buildflags__android_x86
@@ -11051,6 +11328,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:ios_cronet_buildflags__android_x86_64
@@ -11071,6 +11351,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:isolation_info_proto
@@ -11086,6 +11369,9 @@
out: [
"external/chromium_org/net/base/isolation_info.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:isolation_info_proto
@@ -11106,6 +11392,9 @@
"net/base",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net
@@ -11982,8 +12271,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/net/net_jni_headers " +
"--includes " +
@@ -12063,6 +12350,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_jni_headers__android_arm64
@@ -12085,8 +12375,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/net/net_jni_headers " +
"--includes " +
@@ -12166,6 +12454,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_jni_headers__android_x86
@@ -12188,8 +12479,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/net/net_jni_headers " +
"--includes " +
@@ -12269,6 +12558,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_jni_headers__android_x86_64
@@ -12291,8 +12583,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/net/net_jni_headers " +
"--includes " +
@@ -12372,6 +12662,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_nqe_proto
@@ -12387,6 +12680,9 @@
out: [
"external/chromium_org/net/nqe/proto/network_id_proto.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_nqe_proto
@@ -12407,6 +12703,9 @@
"net/nqe/proto",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net:net_public_deps
@@ -12596,6 +12895,9 @@
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/source_address_token.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:net_quic_proto
@@ -12620,6 +12922,9 @@
"net/third_party/quiche/src",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:net_quic_test_tools_proto
@@ -12635,6 +12940,9 @@
out: [
"external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:net_quic_test_tools_proto
@@ -12655,6 +12963,9 @@
"net/third_party/quiche/src/quiche/quic/test_tools",
"protos",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //net/third_party/quiche:quiche
@@ -23510,6 +23821,9 @@
"external/chromium_org/third_party/metrics_proto/user_action_event.pb.cc",
"external/chromium_org/third_party/metrics_proto/user_demographics.pb.cc",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //third_party/metrics_proto:metrics_proto
@@ -23582,6 +23896,9 @@
"protos",
"third_party/metrics_proto",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //third_party/modp_b64:modp_b64
@@ -24673,6 +24990,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:buildflags__android_arm64
@@ -24693,6 +25013,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:buildflags__android_x86
@@ -24713,6 +25036,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:buildflags__android_x86_64
@@ -24733,6 +25059,9 @@
tool_files: [
"build/write_buildflag_header.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:url
@@ -24891,8 +25220,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/url/url_jni_headers " +
"--includes " +
@@ -24917,6 +25244,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:url_jni_headers__android_arm64
@@ -24928,8 +25258,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/url/url_jni_headers " +
"--includes " +
@@ -24954,6 +25282,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:url_jni_headers__android_x86
@@ -24965,8 +25296,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/url/url_jni_headers " +
"--includes " +
@@ -24991,6 +25320,9 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
// GN: //url:url_jni_headers__android_x86_64
@@ -25002,8 +25334,6 @@
],
cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
"long " +
- " " +
- " " +
"--output_dir " +
"$(genDir)/url/url_jni_headers " +
"--includes " +
@@ -25028,5 +25358,8 @@
"build/android/gyp/util/build_utils.py",
"build/gn_helpers.py",
],
+ apex_available: [
+ "com.android.tethering",
+ ],
}
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 466eaf4..233e6f8 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -29,6 +29,7 @@
import collections
import json
import logging as log
+import operator
import os
import re
import sys
@@ -107,6 +108,9 @@
# Location of the protobuf src dir in the Android source tree.
android_protobuf_src = 'external/protobuf/src'
+# put all args on a new line for better diffs.
+NEWLINE = ' " +\n "'
+
# Compiler flags which are passed through to the blueprint.
cflag_allowlist = [
# needed for zlib:zlib
@@ -142,6 +146,9 @@
lambda x: None,
}
+# Name of tethering apex module
+tethering_apex = "com.android.tethering"
+
# ----------------------------------------------------------------------------
# End of configuration.
# ----------------------------------------------------------------------------
@@ -305,6 +312,8 @@
self.stubs = {}
self.cppflags = set()
self.rtti = False
+ # Name of the output. Used for setting .so file name for libcronet
+ self.stem = None
def to_string(self, output):
if self.comment:
@@ -351,6 +360,7 @@
self._output_field(output, 'proto')
self._output_field(output, 'linker_scripts')
self._output_field(output, 'cppflags')
+ self._output_field(output, 'stem')
if self.rtti:
self._output_field(output, 'rtti')
@@ -390,15 +400,12 @@
return write_blueprint_key_value(output, name, value, sort)
def is_compiled(self):
- return self.type not in ('cc_genrule', 'filegroup', 'cc_defaults')
+ return self.type not in ('cc_genrule', 'filegroup', 'java_genrule')
def is_genrule(self):
return self.type == "cc_genrule"
def has_input_files(self):
- for target in self.target.values():
- if len(target.srcs) > 0:
- return True
return len(self.srcs) > 0 or any([len(target.srcs) > 0 for target in self.target.values()])
def merge_attribute(self, key, source_module, allowed_archs, source_key = None):
@@ -546,6 +553,9 @@
# without explictily exporting the include dir.
header_module.export_include_dirs.add(target.proto_in_dir)
+ # This function does not return header_module so setting apex_available attribute here.
+ header_module.apex_available.add(tethering_apex)
+
source_module.genrule_srcs.add(':' + source_module.name)
source_module.genrule_headers.add(header_module.name)
@@ -608,6 +618,334 @@
blueprint.add_module(module)
+
+class BaseActionSanitizer():
+ def __init__(self, target):
+ # Just to be on the safe side, create a deep-copy.
+ self.target = copy.deepcopy(target)
+ self.target.args = self._normalize_args()
+
+ def get_name(self):
+ return label_to_module_name(self.target.name)
+
+ def _normalize_args(self):
+ # Convert ['--param=value'] to ['--param', 'value'] for consistency.
+ # Escape quotations.
+ normalized_args = []
+ for arg in self.target.args:
+ arg = arg.replace('"', r'\"')
+ if arg.startswith('-'):
+ normalized_args.extend(arg.split('='))
+ else:
+ normalized_args.append(arg)
+ return normalized_args
+
+ # There are three types of args:
+ # - flags (--flag)
+ # - value args (--arg value)
+ # - list args (--arg value1 --arg value2)
+ # value args have exactly one arg value pair and list args have one or more arg value pairs.
+ # Note that the set of list args contains the set of value args.
+ # This is because list and value args are identical when the list args has only one arg value pair
+ # Some functions provide special implementations for each type, while others
+ # work on all of them.
+ def _has_arg(self, arg):
+ return arg in self.target.args
+
+ def _get_arg_indices(self, target_arg):
+ return [i for i, arg in enumerate(self.target.args) if arg == target_arg]
+
+ # Whether an arg value pair appears once or more times
+ def _is_list_arg(self, arg):
+ indices = self._get_arg_indices(arg)
+ return len(indices) > 0 and all([not self.target.args[i + 1].startswith('--') for i in indices])
+
+ def _update_list_arg(self, arg, func, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ assert(self._is_list_arg(arg))
+ indices = self._get_arg_indices(arg)
+ for i in indices:
+ self._set_arg_at(i + 1, func(self.target.args[i + 1]))
+
+ # Whether an arg value pair appears exactly once
+ def _is_value_arg(self, arg):
+ return operator.countOf(self.target.args, arg) == 1 and self._is_list_arg(arg)
+
+ def _get_value_arg(self, arg):
+ assert(self._is_value_arg(arg))
+ i = self.target.args.index(arg)
+ return self.target.args[i + 1]
+
+ # used to check whether a function call should cause an error when an arg is
+ # missing.
+ def _should_fail_silently(self, arg, throw_if_absent):
+ return not throw_if_absent and not self._has_arg(arg)
+
+ def _set_value_arg(self, arg, value, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ assert(self._is_value_arg(arg))
+ i = self.target.args.index(arg)
+ self.target.args[i + 1] = value
+
+ def _update_value_arg(self, arg, func, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ self._set_value_arg(arg, func(self._get_value_arg(arg)))
+
+ def _set_arg_at(self, position, value):
+ self.target.args[position] = value
+
+ def _delete_value_arg(self, arg, throw_if_absent = True):
+ if self._should_fail_silently(arg, throw_if_absent):
+ return
+ assert(self._is_value_arg(arg))
+ i = self.target.args.index(arg)
+ self.target.args.pop(i)
+ self.target.args.pop(i)
+
+ def _append_arg(self, arg, value):
+ self.target.args.append(arg)
+ self.target.args.append(value)
+
+ def _sanitize_filepath_with_location_tag(self, arg):
+ if arg.startswith('../../'):
+ arg = self._sanitize_filepath(arg)
+ arg = self._add_location_tag(arg)
+ return arg
+
+ # wrap filename in location tag.
+ def _add_location_tag(self, filename):
+ return '$(location %s)' % filename
+
+ # applies common directory transformation that *should* be universally applicable.
+ # TODO: verify if it actually *is* universally applicable.
+ def _sanitize_filepath(self, filepath):
+ # Careful, order matters!
+ # delete all leading ../
+ filepath = re.sub('^(\.\./)+', '', filepath)
+ filepath = re.sub('^gen/jni_headers', '$(genDir)', filepath)
+ filepath = re.sub('^gen', '$(genDir)', filepath)
+ return filepath
+
+ # Iterate through all the args and apply function
+ def _update_all_args(self, func):
+ self.target.args = [func(arg) for arg in self.target.args]
+
+ def get_cmd(self):
+ arg_string = NEWLINE.join(self.target.args)
+ cmd = '$(location %s) %s' % (
+ gn_utils.label_to_path(self.target.script), arg_string)
+
+ if self.use_response_file:
+ # Pipe response file contents into script
+ cmd = 'echo \'%s\' |%s%s' % (self.target.response_file_contents, NEWLINE, cmd)
+ return cmd
+
+ def get_outputs(self):
+ return self.target.outputs
+
+ def get_srcs(self):
+ # gn treats inputs and sources for actions equally.
+ # soong only supports source files inside srcs, non-source files are added as
+ # tool_files dependency.
+ files = self.target.sources.union(self.target.inputs)
+ return {gn_utils.label_to_path(file) for file in files if is_supported_source_file(file)}
+
+ def get_tool_files(self):
+ # gn treats inputs and sources for actions equally.
+ # soong only supports source files inside srcs, non-source files are added as
+ # tool_files dependency.
+ files = self.target.sources.union(self.target.inputs)
+ tool_files = {gn_utils.label_to_path(file)
+ for file in files if not is_supported_source_file(file)}
+ tool_files.add(gn_utils.label_to_path(self.target.script))
+ return tool_files
+
+ def _sanitize_args(self):
+ # Handle passing parameters via response file by piping them into the script
+ # and reading them from /dev/stdin.
+
+ self.use_response_file = gn_utils.RESPONSE_FILE in self.target.args
+ if self.use_response_file:
+ # Replace {{response_file_contents}} with /dev/stdin
+ self.target.args = ['/dev/stdin' if it == gn_utils.RESPONSE_FILE else it
+ for it in self.target.args]
+
+ def _sanitize_outputs(self):
+ pass
+
+ def _sanitize_inputs(self):
+ pass
+
+ def sanitize(self):
+ self._sanitize_args()
+ self._sanitize_outputs()
+ self._sanitize_inputs()
+
+ # Whether this target generates header files
+ def is_header_generated(self):
+ return any(os.path.splitext(it)[1] == '.h' for it in self.target.outputs)
+
+class WriteBuildDateHeaderSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_arg_at(0, '$(out)')
+ super()._sanitize_args()
+
+class WriteBuildFlagHeaderSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_value_arg('--gen-dir', '.')
+ self._set_value_arg('--output', '$(out)')
+ super()._sanitize_args()
+
+class JniGeneratorSanitizer(BaseActionSanitizer):
+ def _add_location_tag_to_filepath(self, arg):
+ if not arg.endswith('.class'):
+ # --input_file supports both .class specifiers or source files as arguments.
+ # Only source files need to be wrapped inside a $(location <label>) tag.
+ arg = self._add_location_tag(arg)
+ return arg
+
+ def _sanitize_args(self):
+ self._update_value_arg('--jar_file', self._sanitize_filepath, False)
+ self._update_value_arg('--jar_file', self._add_location_tag, False)
+ if self._has_arg('--jar_file'):
+ self._append_arg('--javap', '$$(find out/.path -name javap)')
+ self._update_value_arg('--output_dir', self._sanitize_filepath)
+ self._update_value_arg('--includes', self._sanitize_filepath, False)
+ self._delete_value_arg('--prev_output_dir', False)
+ self._update_list_arg('--input_file', self._sanitize_filepath)
+ self._update_list_arg('--input_file', self._add_location_tag_to_filepath)
+ super()._sanitize_args()
+
+ def _sanitize_outputs(self):
+ # fix target.output directory to match #include statements.
+ self.target.outputs = {re.sub('^jni_headers/', '', out) for out in self.target.outputs}
+ super()._sanitize_outputs()
+
+ def get_tool_files(self):
+ tool_files = super().get_tool_files()
+ # android_jar.classes should be part of the tools as it list implicit classes
+ # for the script to generate JNI headers.
+ tool_files.add("base/android/jni_generator/android_jar.classes")
+ return tool_files
+
+class JniRegistrationGeneratorSanitizer(BaseActionSanitizer):
+ def _sanitize_inputs(self):
+ self.target.inputs = [file for file in self.target.inputs if not file.startswith('//out/')]
+
+ def _sanitize_args(self):
+ self._update_value_arg('--depfile', self._sanitize_filepath)
+ self._update_value_arg('--srcjar-path', self._sanitize_filepath)
+ self._update_value_arg('--header-path', self._sanitize_filepath)
+ self._set_value_arg('--sources-files', '$(genDir)/java.sources')
+ # update_jni_registration_module removes them from the srcs of the module
+ # It might be better to remove sources by '--sources-exclusions'
+ self._delete_value_arg('--sources-exclusions')
+ super()._sanitize_args()
+
+ def get_cmd(self):
+ # jni_registration_generator.py doesn't work with python2
+ cmd = "python3 " + super().get_cmd()
+ # Path in the original sources file does not work in genrule.
+ # So creating sources file in cmd based on the srcs of this target.
+ # Adding ../$(current_dir)/ to the head because jni_registration_generator.py uses the files
+ # whose path startswith(..)
+ commands = ["current_dir=`basename \\\`pwd\\\``;",
+ "for f in $(in);",
+ "do",
+ "echo \\\"../$$current_dir/$$f\\\" >> $(genDir)/java.sources;",
+ "done;",
+ cmd]
+
+ # .h file jni_registration_generator.py generates has #define with directory name.
+ # With the genrule env that contains "." which is invalid. So replace that at the end of cmd.
+ commands.append(";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' ")
+ commands.append("$(genDir)/components/cronet/android/cronet_jni_registration.h")
+ return NEWLINE.join(commands)
+
+class JavaJniRegistrationGeneratorSanitizer(JniRegistrationGeneratorSanitizer):
+ def get_name(self):
+ return label_to_module_name(self.target.name) + "__java"
+
+ def _sanitize_outputs(self):
+ self.target.outputs = [out for out in self.target.outputs if
+ out.endswith(".srcjar")]
+ super()._sanitize_outputs()
+
+class VersionSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_value_arg('-o', '$(out)')
+ # args for the version.py contain file path without leading --arg key. So apply sanitize
+ # function for all the args.
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('-e', "'%s'" % self._get_value_arg('-e'))
+ super()._sanitize_args()
+
+ def get_tool_files(self):
+ tool_files = super().get_tool_files()
+ # android_chrome_version.py is not specified in anywhere but version.py imports this file
+ tool_files.add('build/util/android_chrome_version.py')
+ return tool_files
+
+class JavaCppEnumSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('--srcjar', '$(out)')
+ super()._sanitize_args()
+
+class MakeDafsaSanitizer(BaseActionSanitizer):
+ def is_header_generated(self):
+ # This script generates .cc files but they are #included by other sources
+ # (e.g. registry_controlled_domain.cc)
+ return True
+
+class JavaCppFeatureSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('--srcjar', '$(out)')
+ super()._sanitize_args()
+
+class JavaCppStringSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._update_all_args(self._sanitize_filepath_with_location_tag)
+ self._set_value_arg('--srcjar', '$(out)')
+ super()._sanitize_args()
+
+class WriteNativeLibrariesJavaSanitizer(BaseActionSanitizer):
+ def _sanitize_args(self):
+ self._set_value_arg('--output', '$(out)')
+ super()._sanitize_args()
+
+def get_action_sanitizer(target, type):
+ if target.script == "//build/write_buildflag_header.py":
+ return WriteBuildFlagHeaderSanitizer(target)
+ elif target.script == "//build/write_build_date_header.py":
+ return WriteBuildDateHeaderSanitizer(target)
+ elif target.script == '//base/android/jni_generator/jni_generator.py':
+ return JniGeneratorSanitizer(target)
+ elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
+ if type == 'java_genrule':
+ return JavaJniRegistrationGeneratorSanitizer(target)
+ else:
+ return JniRegistrationGeneratorSanitizer(target)
+ elif target.script == "//build/util/version.py":
+ return VersionSanitizer(target)
+ elif target.script == "//build/android/gyp/java_cpp_enum.py":
+ return JavaCppEnumSanitizer(target)
+ elif target.script == "//net/tools/dafsa/make_dafsa.py":
+ return MakeDafsaSanitizer(target)
+ elif target.script == '//build/android/gyp/java_cpp_features.py':
+ return JavaCppFeatureSanitizer(target)
+ elif target.script == '//build/android/gyp/java_cpp_strings.py':
+ return JavaCppStringSanitizer(target)
+ elif target.script == '//build/android/gyp/write_native_libraries_java.py':
+ return WriteNativeLibrariesJavaSanitizer(target)
+ else:
+ # TODO: throw exception here once all script hacks have been converted.
+ return BaseActionSanitizer(target)
+
def create_action_foreach_modules(blueprint, target):
""" The following assumes that rebase_path exists in the args.
The args of an action_foreach contains hints about which output files are generated
@@ -639,166 +977,19 @@
new_args.append(arg)
target.args = new_args
- return create_action_module(blueprint, target)
+ return create_action_module(blueprint, target, 'cc_genrule')
-def create_action_module(blueprint, target):
- bp_module_name = label_to_module_name(target.name)
- module = Module('cc_genrule', bp_module_name, target.name)
+def create_action_module(blueprint, target, type):
+ sanitizer = get_action_sanitizer(target, type)
+ sanitizer.sanitize()
- # Convert ['--param=value'] to ['--param', 'value'] for consistency.
- # TODO: we may want to only do this for python scripts arguments. If argparse
- # is used, this transformation is safe.
- target.args = [str for it in target.args for str in it.split('=')]
-
- if target.script == "//build/write_buildflag_header.py":
- # write_buildflag_header.py writes result to args.genDir/args.output
- # So, override args.genDir by '.' so that args.output=$(out) works
- for i, val in enumerate(target.args):
- if val == '--gen-dir':
- target.args[i + 1] = '.'
- elif val == '--output':
- target.args[i + 1] = '$(out)'
-
- elif target.script == '//build/write_build_date_header.py':
- target.args[0] = '$(out)'
-
- elif target.script == '//base/android/jni_generator/jni_generator.py':
- needs_javap = False
- for i, val in enumerate(target.args):
- if val == '--output_dir':
- # replace --output_dir gen/jni_headers/... with --output_dir $(genDir)/...
- target.args[i + 1] = re.sub('^gen/jni_headers', '$(genDir)', target.args[i + 1])
- elif val == '--input_file':
- # --input_file supports both .class specifiers or source files as arguments.
- # Only source files need to be wrapped inside a $(location <label>) tag.
- if re.match('.*\.class$', target.args[i + 1]):
- continue
- # replace --input_file ../../... with --input_file $(location ...)
- # TODO: put inside function
- filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
- target.args[i + 1] = '$(location %s)' % filename
- elif val == '--includes' and 'jni_generator_helper' in target.args[i + 1]:
- # delete all leading ../
- target.args[i + 1] = re.sub('^(\.\./)+', '', target.args[i + 1])
- elif val == '--prev_output_dir':
- # this is not needed for aosp builds.
- target.args[i] = ''
- target.args[i + 1] = ''
- elif val == '--jar_file':
- # delete leading ../../ and add path to javap
- filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
- target.args[i + 1] = '$(location %s)' % filename
- needs_javap = True
-
- if needs_javap:
- target.args.append('--javap')
- target.args.append('$$(find out/.path -name javap)')
- # fix target.output directory to match #include statements.
- target.outputs = [re.sub('^jni_headers/', '', out) for out in target.outputs]
-
- elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
- # jni_registration_generator.py pulls in some config dependencies that we
- # do not handle. Remove them.
- # TODO: find a better way to do this.
- target.deps.clear()
-
- target.inputs = [file for file in target.inputs if not file.startswith('//out/')]
- for i, val in enumerate(target.args):
- if val in ['--depfile', '--srcjar-path', '--header-path']:
- target.args[i + 1] = re.sub('^gen', '$(genDir)', target.args[i + 1])
- if val == '--sources-files':
- target.args[i + 1] = '$(genDir)/java.sources'
- elif val == '--sources-exclusions':
- # update_jni_registration_module removes them from the srcs of the module
- # It might be better to remove sources by '--sources-exclusions'
- target.args[i] = ''
- target.args[i + 1] = ''
- elif target.script == "//net/tools/dafsa/make_dafsa.py":
- # This script generates .cc files but source (registry_controlled_domain.cc) in the target that
- # depends on this target includes .cc file this script generates.
+ module = Module(type, sanitizer.get_name(), target.name)
+ module.cmd = sanitizer.get_cmd()
+ module.out = sanitizer.get_outputs()
+ if sanitizer.is_header_generated():
module.genrule_headers.add(module.name)
- elif target.script == "//build/util/version.py":
- # android_chrome_version.py is not specified in anywhere but version.py imports this file
- module.tool_files.add('build/util/android_chrome_version.py')
- for i, val in enumerate(target.args):
- if val.startswith('../../'):
- filename = re.sub('^\.\./\.\./', '', val)
- target.args[i] = '$(location %s)' % filename
- elif val == '-e':
- # arg for -e EVAL option should be passed in -e PATCH_HI=int(PATCH)//256 format.
- target.args[i + 1] = '%s=\'%s\'' % (target.args[i + 1], target.args[i + 2])
- target.args[i + 2] = ''
- elif val == '-o':
- target.args[i + 1] = '$(out)'
-
- script = gn_utils.label_to_path(target.script)
- module.tool_files.add(script)
-
- # Handle passing parameters via response file by piping them into the script
- # and reading them from /dev/stdin.
- response_file = '{{response_file_name}}'
- use_response_file = response_file in target.args
- if use_response_file:
- # Replace {{response_file_contents}} with /dev/stdin
- target.args = ['/dev/stdin' if it == response_file else it for it in target.args]
-
- # escape " and \$ in target.args.
- # once all actions are properly implemented, this may not be necessary anymore.
- # TODO: is this the right place to do this?
- target.args = [arg.replace('"', r'\"') for arg in target.args]
- target.args = [arg.replace(r'\$', r'\\$') for arg in target.args]
-
- # put all args on a new line for better diffs.
- NEWLINE = ' " +\n "'
- arg_string = NEWLINE.join(target.args)
- module.cmd = '$(location %s) %s' % (script, arg_string)
-
- if use_response_file:
- # Pipe response file contents into script
- module.cmd = 'echo \'%s\' |%s%s' % (target.response_file_contents, NEWLINE, module.cmd)
-
- if any(os.path.splitext(it)[1] == '.h' for it in target.outputs):
- module.genrule_headers.add(bp_module_name)
-
- # gn treats inputs and sources for actions equally.
- # soong only supports source files inside srcs, non-source files are added as
- # tool_files dependency.
- for it in target.sources or target.inputs:
- if is_supported_source_file(it):
- module.srcs.add(gn_utils.label_to_path(it))
- else:
- module.tool_files.add(gn_utils.label_to_path(it))
-
- # Actions using template "action_with_pydeps" also put script inside inputs.
- # TODO: it might make sense to filter inputs inside GnParser.
- if script in module.srcs:
- module.srcs.remove(script)
-
- module.out.update(target.outputs)
-
- if target.script == "//base/android/jni_generator/jni_generator.py":
- # android_jar.classes should be part of the tools as it list implicit classes
- # for the script to generate JNI headers.
- module.tool_files.add("base/android/jni_generator/android_jar.classes")
- elif target.script == '//base/android/jni_generator/jni_registration_generator.py':
- # jni_registration_generator.py doesn't work with python2
- module.cmd = "python3 " + module.cmd
- # Path in the original sources file does not work in genrule.
- # So creating sources file in cmd based on the srcs of this target.
- # Adding ../$(current_dir)/ to the head because jni_registration_generator.py uses the files
- # whose path startswith(..)
- commands = ["current_dir=`basename \\\`pwd\\\``;",
- "for f in $(in);",
- "do",
- "echo \\\"../$$current_dir/$$f\\\" >> $(genDir)/java.sources;",
- "done;",
- module.cmd]
-
- # .h file jni_registration_generator.py generates has #define with directory name.
- # With the genrule env that contains "." which is invalid. So replace that at the end of cmd.
- commands.append(";sed -i -e 's/OUT_SOONG_.TEMP_SBOX_.*_OUT/GEN/g' ")
- commands.append("$(genDir)/components/cronet/android/cronet_jni_registration.h")
- module.cmd = NEWLINE.join(commands)
+ module.srcs = sanitizer.get_srcs()
+ module.tool_files = sanitizer.get_tool_files()
blueprint.add_module(module)
return module
@@ -843,7 +1034,6 @@
for d in include_dirs
if not re.match('^//out/.*', d)])
-
def create_modules_from_target(blueprint, gn, gn_target_name):
"""Generate module(s) for a given GN target.
@@ -883,7 +1073,7 @@
if module is None:
return None
elif target.type == 'action':
- module = create_action_module(blueprint, target)
+ module = create_action_module(blueprint, target, 'cc_genrule')
elif target.type == 'action_foreach':
module = create_action_foreach_modules(blueprint, target)
elif target.type == 'copy':
@@ -931,6 +1121,9 @@
module.host_supported = target.host_supported()
module.device_supported = target.device_supported()
+ if module.is_genrule():
+ module.apex_available.add(tethering_apex)
+
if module.is_compiled():
# Don't try to inject library/source dependencies into genrules or
# filegroups because they are not compiled in the traditional sense.
@@ -954,6 +1147,13 @@
if module.type == 'cc_library_static':
module.export_generated_headers = module.generated_headers
+ if module.name == 'cronet_aml_components_cronet_android_cronet':
+ if target.output_name is None:
+ raise Error('Failed to get output_name for libcronet name')
+ # .so file name needs to match with CronetLibraryLoader.java (e.g. libcronet.109.0.5386.0.so)
+ # So setting the output name based on the output_name from the desc.json
+ module.stem = 'lib' + target.output_name
+
# dep_name is an unmangled GN target name (e.g. //foo:bar(toolchain)).
# Currently, only one module is generated from target even target has multiple toolchains.
# And module is generated based on the first visited target.
@@ -1052,6 +1252,8 @@
bp_module_name = module_prefix + 'java'
module = Module('java_library', bp_module_name, '//gn:java')
module.srcs.update([gn_utils.label_to_path(source) for source in gn.java_sources])
+ for dep in gn.java_actions:
+ dep_module = create_action_module(blueprint, gn.get_target(dep), 'java_genrule')
blueprint.add_module(module)
def update_jni_registration_module(module, gn):
@@ -1064,7 +1266,8 @@
# TODO: java_sources might not contain all the required java files
module.srcs.update([gn_utils.label_to_path(source)
- for source in gn.java_sources if source not in deny_list])
+ for source in gn.java_sources
+ if source.endswith('.java') and source not in deny_list])
def create_blueprint_for_targets(gn, targets):
"""Generate a blueprint for a list of GN targets."""
@@ -1104,6 +1307,8 @@
'-UANDROID',
]
defaults.stl = 'none'
+ defaults.min_sdk_version = 29
+ defaults.apex_available.add(tethering_apex)
blueprint.add_module(defaults)
for target in targets:
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index 71d0d23..130f8ff 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -30,7 +30,20 @@
BUILDFLAGS_TARGET = '//gn:gen_buildflags'
GEN_VERSION_TARGET = '//src/base:version_gen_h'
LINKER_UNIT_TYPES = ('executable', 'shared_library', 'static_library', 'source_set')
-
+JAVA_BANNED_SCRIPTS = [
+ "//build/android/gyp/turbine.py",
+ "//build/android/gyp/compile_java.py",
+ "//build/android/gyp/filter_zip.py",
+ "//build/android/gyp/dex.py",
+ "//build/android/gyp/write_build_config.py",
+ "//build/android/gyp/create_r_java.py",
+ "//build/android/gyp/ijar.py",
+ "//build/android/gyp/create_r_java.py",
+ "//build/android/gyp/bytecode_processor.py",
+ "//build/android/gyp/prepare_resources.py",
+ "//build/android/gyp/aar.py",
+ "//build/android/gyp/zip.py",
+]
# TODO(primiano): investigate these, they require further componentization.
ODR_VIOLATION_IGNORE_TARGETS = {
'//test/cts:perfetto_cts_deps',
@@ -39,6 +52,8 @@
ARCH_REGEX = r'(android_x86_64|android_x86|android_arm|android_arm64|host)'
DEX_REGEX = '.*__dex__%s$' % ARCH_REGEX
COMPILE_JAVA_REGEX = '.*__compile_java__%s$' % ARCH_REGEX
+RESPONSE_FILE = '{{response_file_name}}'
+
def repo_root():
"""Returns an absolute path to the repository root."""
return os.path.join(
@@ -72,6 +87,11 @@
def _is_java_source(src):
return os.path.splitext(src)[1] == '.java' and not src.startswith("//out/test/gen/")
+def is_java_action(script, outputs):
+ return (script != "" and script not in JAVA_BANNED_SCRIPTS) and any(
+ [file.endswith(".srcjar") or file.endswith(".java")
+ for file in outputs])
+
class GnParser(object):
"""A parser with some cleverness for GN json desc files
@@ -155,6 +175,9 @@
self.is_finalized = False
self.arch = dict()
+ # This is used to get the name/version of libcronet
+ self.output_name = None
+
def host_supported(self):
return 'host' in self.arch
@@ -220,6 +243,7 @@
self.actions = {}
self.proto_libs = {}
self.java_sources = set()
+ self.java_actions = set()
def _get_response_file_contents(self, action_desc):
# response_file_contents are formatted as:
@@ -282,7 +306,9 @@
# genrule's do not allow to overload cmd per target OS / arch. Create a
# separate action for every architecture.
# Cover both action and action_foreach
- if type_.startswith('action'):
+ if type_.startswith('action') and \
+ not is_java_action(desc.get("script", ""), desc.get("outputs", [])):
+ # Don't meddle with the java actions name
target_name += '__' + arch
target = self.all_targets.get(target_name)
@@ -316,6 +342,14 @@
elif target.type in LINKER_UNIT_TYPES:
self.linker_units[gn_target_name] = target
target.arch[arch].sources.update(desc.get('sources', []))
+ elif desc.get("script", "") in JAVA_BANNED_SCRIPTS or self._is_java_target(target):
+ # java_group identifies the group target generated by the android_library
+ # or java_library template. A java_group must not be added as a dependency, but sources are collected
+ log.debug('Found java target %s', target.name)
+ if target.type == "action":
+ # Convert java actions into java_group and keep the inputs for collection.
+ target.inputs.update(desc.get('inputs', []))
+ target.type = 'java_group'
elif target.type in ['action', 'action_foreach']:
self.actions[gn_target_name] = target
target.inputs.update(desc.get('inputs', []))
@@ -328,11 +362,6 @@
elif target.type == 'copy':
# TODO: copy rules are not currently implemented.
self.actions[gn_target_name] = target
- elif self._is_java_target(target):
- # java_group identifies the group target generated by the android_library
- # or java_library template. A java_group must not be added as a dependency, but sources are collected
- log.debug('Found java target %s', target.name)
- target.type = 'java_group'
# Default for 'public' is //* - all headers in 'sources' are public.
# TODO(primiano): if a 'public' section is specified (even if empty), then
@@ -347,6 +376,7 @@
target.ldflags.update(desc.get('ldflags', []))
target.arch[arch].defines.update(desc.get('defines', []))
target.arch[arch].include_dirs.update(desc.get('include_dirs', []))
+ target.output_name = desc.get('output_name', None)
if "-frtti" in target.arch[arch].cflags:
target.rtti = True
@@ -398,6 +428,14 @@
log.debug('Adding java sources for %s', dep.name)
java_srcs = [src for src in dep.inputs if _is_java_source(src)]
self.java_sources.update(java_srcs)
+ if dep.type in ["action"] and target.type == "java_group":
+ # //base:base_java_aidl generates srcjar from .aidl files. But java_library in soong can
+ # directly have .aidl files in srcs. So adding .aidl files to the java_sources.
+ # TODO: Find a better way/place to do this.
+ if dep.name == '//base:base_java_aidl':
+ self.java_sources.update(dep.arch[arch].sources)
+ else:
+ self.java_actions.add(dep.name)
return target
def get_proto_exports(self, proto_desc):