Merge "Expose vpn bypassability in VpnTransportInfo"
diff --git a/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java b/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java
index 784ebd5..6d502ce 100644
--- a/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java
+++ b/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java
@@ -34,6 +34,7 @@
import static android.net.TetheringManager.TETHER_ERROR_PROVISIONING_FAILED;
import static com.android.networkstack.apishim.ConstantsShim.ACTION_TETHER_UNSUPPORTED_CARRIER_UI;
+import static com.android.networkstack.apishim.ConstantsShim.RECEIVER_NOT_EXPORTED;
import android.app.AlarmManager;
import android.app.PendingIntent;
@@ -119,8 +120,13 @@
mEntitlementCacheValue = new SparseIntArray();
mPermissionChangeCallback = callback;
mHandler = h;
- mContext.registerReceiver(mReceiver, new IntentFilter(ACTION_PROVISIONING_ALARM),
- null, mHandler);
+ if (SdkLevel.isAtLeastU()) {
+ mContext.registerReceiver(mReceiver, new IntentFilter(ACTION_PROVISIONING_ALARM),
+ null, mHandler, RECEIVER_NOT_EXPORTED);
+ } else {
+ mContext.registerReceiver(mReceiver, new IntentFilter(ACTION_PROVISIONING_ALARM),
+ null, mHandler);
+ }
mSilentProvisioningService = ComponentName.unflattenFromString(
mContext.getResources().getString(R.string.config_wifi_tether_enable));
}
diff --git a/framework-t/src/android/net/IpSecAlgorithm.java b/framework-t/src/android/net/IpSecAlgorithm.java
index a39a80d..aac6f79 100644
--- a/framework-t/src/android/net/IpSecAlgorithm.java
+++ b/framework-t/src/android/net/IpSecAlgorithm.java
@@ -21,6 +21,7 @@
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.SystemProperties;
import com.android.internal.annotations.VisibleForTesting;
@@ -351,8 +352,11 @@
}
}
+ // T introduced calculated property 'ro.vendor.api_level',
+ // which is the API level of the VSR that the device must conform to.
+ int vendorApiLevel = SystemProperties.getInt("ro.vendor.api_level", 10000);
for (Entry<String, Integer> entry : ALGO_TO_REQUIRED_FIRST_SDK.entrySet()) {
- if (Build.VERSION.DEVICE_INITIAL_SDK_INT >= entry.getValue()) {
+ if (vendorApiLevel >= entry.getValue()) {
enabledAlgos.add(entry.getKey());
}
}
diff --git a/framework/api/module-lib-current.txt b/framework/api/module-lib-current.txt
index 988947a..752c347 100644
--- a/framework/api/module-lib-current.txt
+++ b/framework/api/module-lib-current.txt
@@ -15,7 +15,7 @@
method @Nullable @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public android.net.LinkProperties getRedactedLinkPropertiesForPackage(@NonNull android.net.LinkProperties, int, @NonNull String);
method @Nullable @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public android.net.NetworkCapabilities getRedactedNetworkCapabilitiesForPackage(@NonNull android.net.NetworkCapabilities, int, @NonNull String);
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerDefaultNetworkCallbackForUid(int, @NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
- method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
+ method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void removeUidFromMeteredNetworkAllowList(int);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void removeUidFromMeteredNetworkDenyList(int);
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void replaceFirewallChain(int, @NonNull int[]);
diff --git a/framework/src/android/net/ConnectivityManager.java b/framework/src/android/net/ConnectivityManager.java
index b5c3c64..39c5af2 100644
--- a/framework/src/android/net/ConnectivityManager.java
+++ b/framework/src/android/net/ConnectivityManager.java
@@ -4789,7 +4789,8 @@
@SuppressLint({"ExecutorRegistration", "PairedRegistration"})
@RequiresPermission(anyOf = {
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
- android.Manifest.permission.NETWORK_SETTINGS})
+ android.Manifest.permission.NETWORK_SETTINGS,
+ android.Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS})
public void registerSystemDefaultNetworkCallback(@NonNull NetworkCallback networkCallback,
@NonNull Handler handler) {
CallbackHandler cbHandler = new CallbackHandler(handler);
diff --git a/service/mdns/com/android/server/connectivity/mdns/EnqueueMdnsQueryCallable.java b/service/mdns/com/android/server/connectivity/mdns/EnqueueMdnsQueryCallable.java
index f366363..f7871f3 100644
--- a/service/mdns/com/android/server/connectivity/mdns/EnqueueMdnsQueryCallable.java
+++ b/service/mdns/com/android/server/connectivity/mdns/EnqueueMdnsQueryCallable.java
@@ -17,6 +17,7 @@
package com.android.server.connectivity.mdns;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.text.TextUtils;
import android.util.Pair;
@@ -38,8 +39,6 @@
* and the list of the subtypes in the query as a {@link Pair}. If a query is failed to build, or if
* it can not be enqueued, then call to {@link #call()} returns {@code null}.
*/
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public class EnqueueMdnsQueryCallable implements Callable<Pair<Integer, List<String>>> {
private static final String TAG = "MdnsQueryCallable";
@@ -81,7 +80,10 @@
this.transactionId = transactionId;
}
+ // Incompatible return type for override of Callable#call().
+ @SuppressWarnings("nullness:override.return.invalid")
@Override
+ @Nullable
public Pair<Integer, List<String>> call() {
try {
MdnsSocketClient requestSender = weakRequestSender.get();
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsConfigs.java b/service/mdns/com/android/server/connectivity/mdns/MdnsConfigs.java
index 41abba7..75c7e6c 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsConfigs.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsConfigs.java
@@ -101,4 +101,8 @@
public static boolean allowNetworkInterfaceIndexPropagation() {
return true;
}
+
+ public static boolean allowMultipleSrvRecordsPerHost() {
+ return true;
+ }
}
\ No newline at end of file
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsConstants.java b/service/mdns/com/android/server/connectivity/mdns/MdnsConstants.java
index 0b2066a..396be5f 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsConstants.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsConstants.java
@@ -16,19 +16,15 @@
package com.android.server.connectivity.mdns;
-import android.annotation.TargetApi;
-import android.os.Build;
+import static java.nio.charset.StandardCharsets.UTF_8;
import com.android.internal.annotations.VisibleForTesting;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
/** mDNS-related constants. */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
@VisibleForTesting
public final class MdnsConstants {
public static final int MDNS_PORT = 5353;
@@ -48,7 +44,6 @@
private static final String MDNS_IPV4_HOST_ADDRESS = "224.0.0.251";
private static final String MDNS_IPV6_HOST_ADDRESS = "FF02::FB";
private static InetAddress mdnsAddress;
- private static Charset utf8Charset;
private MdnsConstants() {
}
@@ -79,16 +74,6 @@
}
public static Charset getUtf8Charset() {
- synchronized (MdnsConstants.class) {
- if (utf8Charset == null) {
- utf8Charset = getUtf8CharsetOnKitKat();
- }
- return utf8Charset;
- }
- }
-
- @TargetApi(Build.VERSION_CODES.KITKAT)
- private static Charset getUtf8CharsetOnKitKat() {
- return StandardCharsets.UTF_8;
+ return UTF_8;
}
}
\ No newline at end of file
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsInetAddressRecord.java b/service/mdns/com/android/server/connectivity/mdns/MdnsInetAddressRecord.java
index bd47414..47ac20e 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsInetAddressRecord.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsInetAddressRecord.java
@@ -16,6 +16,8 @@
package com.android.server.connectivity.mdns;
+import android.annotation.Nullable;
+
import com.android.internal.annotations.VisibleForTesting;
import java.io.IOException;
@@ -27,12 +29,10 @@
import java.util.Objects;
/** An mDNS "AAAA" or "A" record, which holds an IPv6 or IPv4 address. */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
@VisibleForTesting
public class MdnsInetAddressRecord extends MdnsRecord {
- private Inet6Address inet6Address;
- private Inet4Address inet4Address;
+ @Nullable private Inet6Address inet6Address;
+ @Nullable private Inet4Address inet4Address;
/**
* Constructs the {@link MdnsRecord}
@@ -47,11 +47,13 @@
}
/** Returns the IPv6 address. */
+ @Nullable
public Inet6Address getInet6Address() {
return inet6Address;
}
/** Returns the IPv4 address. */
+ @Nullable
public Inet4Address getInet4Address() {
return inet4Address;
}
@@ -113,7 +115,7 @@
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
if (this == other) {
return true;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsPointerRecord.java b/service/mdns/com/android/server/connectivity/mdns/MdnsPointerRecord.java
index 0166815..9641a40 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsPointerRecord.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsPointerRecord.java
@@ -16,14 +16,14 @@
package com.android.server.connectivity.mdns;
+import android.annotation.Nullable;
+
import com.android.internal.annotations.VisibleForTesting;
import java.io.IOException;
import java.util.Arrays;
/** An mDNS "PTR" record, which holds a name (the "pointer"). */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
@VisibleForTesting
public class MdnsPointerRecord extends MdnsRecord {
private String[] pointer;
@@ -66,7 +66,7 @@
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
if (this == other) {
return true;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsRecord.java b/service/mdns/com/android/server/connectivity/mdns/MdnsRecord.java
index 24fb09e..35f6da1 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsRecord.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsRecord.java
@@ -16,6 +16,10 @@
package com.android.server.connectivity.mdns;
+import static java.util.concurrent.TimeUnit.MILLISECONDS;
+import static java.util.concurrent.TimeUnit.SECONDS;
+
+import android.annotation.Nullable;
import android.os.SystemClock;
import android.text.TextUtils;
@@ -24,14 +28,11 @@
import java.io.IOException;
import java.util.Arrays;
import java.util.Objects;
-import java.util.concurrent.TimeUnit;
/**
* Abstract base class for mDNS records. Stores the header fields and provides methods for reading
* the record from and writing it to a packet.
*/
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public abstract class MdnsRecord {
public static final int TYPE_A = 0x0001;
public static final int TYPE_AAAA = 0x001C;
@@ -59,11 +60,14 @@
* @param reader The reader to read the record from.
* @throws IOException If an error occurs while reading the packet.
*/
+ // call to readData(com.android.server.connectivity.mdns.MdnsPacketReader) not allowed on given
+ // receiver.
+ @SuppressWarnings("nullness:method.invocation.invalid")
protected MdnsRecord(String[] name, int type, MdnsPacketReader reader) throws IOException {
this.name = name;
this.type = type;
cls = reader.readUInt16();
- ttlMillis = TimeUnit.SECONDS.toMillis(reader.readUInt32());
+ ttlMillis = SECONDS.toMillis(reader.readUInt32());
int dataLength = reader.readUInt16();
receiptTimeMillis = SystemClock.elapsedRealtime();
@@ -157,7 +161,7 @@
writer.writeUInt16(type);
writer.writeUInt16(cls);
- writer.writeUInt32(TimeUnit.MILLISECONDS.toSeconds(getRemainingTTL(now)));
+ writer.writeUInt32(MILLISECONDS.toSeconds(getRemainingTTL(now)));
int dataLengthPos = writer.getWritePosition();
writer.writeUInt16(0); // data length
@@ -194,7 +198,7 @@
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
if (!(other instanceof MdnsRecord)) {
return false;
}
@@ -231,7 +235,7 @@
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
if (this == other) {
return true;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsResponse.java b/service/mdns/com/android/server/connectivity/mdns/MdnsResponse.java
index c94e3c6..623168c 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsResponse.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsResponse.java
@@ -16,6 +16,8 @@
package com.android.server.connectivity.mdns;
+import android.annotation.Nullable;
+
import com.android.internal.annotations.VisibleForTesting;
import java.io.IOException;
@@ -25,8 +27,6 @@
import java.util.List;
/** An mDNS response. */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public class MdnsResponse {
private final List<MdnsRecord> records;
private final List<MdnsPointerRecord> pointerRecords;
@@ -78,7 +78,7 @@
}
@VisibleForTesting
- /* package */ synchronized void clearPointerRecords() {
+ synchronized void clearPointerRecords() {
pointerRecords.clear();
}
@@ -91,15 +91,16 @@
return false;
}
+ @Nullable
public synchronized List<String> getSubtypes() {
List<String> subtypes = null;
-
for (MdnsPointerRecord pointerRecord : pointerRecords) {
- if (pointerRecord.hasSubtype()) {
+ String pointerRecordSubtype = pointerRecord.getSubtype();
+ if (pointerRecordSubtype != null) {
if (subtypes == null) {
subtypes = new LinkedList<>();
}
- subtypes.add(pointerRecord.getSubtype());
+ subtypes.add(pointerRecordSubtype);
}
}
@@ -166,7 +167,8 @@
}
/** Sets the IPv4 address record. */
- public synchronized boolean setInet4AddressRecord(MdnsInetAddressRecord newInet4AddressRecord) {
+ public synchronized boolean setInet4AddressRecord(
+ @Nullable MdnsInetAddressRecord newInet4AddressRecord) {
if (recordsAreSame(this.inet4AddressRecord, newInet4AddressRecord)) {
return false;
}
@@ -190,7 +192,8 @@
}
/** Sets the IPv6 address record. */
- public synchronized boolean setInet6AddressRecord(MdnsInetAddressRecord newInet6AddressRecord) {
+ public synchronized boolean setInet6AddressRecord(
+ @Nullable MdnsInetAddressRecord newInet6AddressRecord) {
if (recordsAreSame(this.inet6AddressRecord, newInet6AddressRecord)) {
return false;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java b/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
index 57b241e..861acbb 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsResponseDecoder.java
@@ -25,19 +25,20 @@
import java.io.EOFException;
import java.io.IOException;
import java.net.DatagramPacket;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/** A class that decodes mDNS responses from UDP packets. */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public class MdnsResponseDecoder {
public static final int SUCCESS = 0;
private static final String TAG = "MdnsResponseDecoder";
private static final MdnsLogger LOGGER = new MdnsLogger(TAG);
- private final String[] serviceType;
+ private final boolean allowMultipleSrvRecordsPerHost =
+ MdnsConfigs.allowMultipleSrvRecordsPerHost();
+ @Nullable private final String[] serviceType;
private final Clock clock;
/** Constructs a new decoder that will extract responses for the given service type. */
@@ -281,13 +282,18 @@
for (MdnsRecord record : records) {
if (record instanceof MdnsInetAddressRecord) {
MdnsInetAddressRecord inetRecord = (MdnsInetAddressRecord) record;
- MdnsResponse response = findResponseWithHostName(responses, inetRecord.getName());
- if (inetRecord.getInet4Address() != null && response != null) {
- response.setInet4AddressRecord(inetRecord);
- response.setInterfaceIndex(interfaceIndex);
- } else if (inetRecord.getInet6Address() != null && response != null) {
- response.setInet6AddressRecord(inetRecord);
- response.setInterfaceIndex(interfaceIndex);
+ if (allowMultipleSrvRecordsPerHost) {
+ List<MdnsResponse> matchingResponses =
+ findResponsesWithHostName(responses, inetRecord.getName());
+ for (MdnsResponse response : matchingResponses) {
+ assignInetRecord(response, inetRecord, interfaceIndex);
+ }
+ } else {
+ MdnsResponse response =
+ findResponseWithHostName(responses, inetRecord.getName());
+ if (response != null) {
+ assignInetRecord(response, inetRecord, interfaceIndex);
+ }
}
}
}
@@ -295,6 +301,39 @@
return SUCCESS;
}
+ private static void assignInetRecord(
+ MdnsResponse response, MdnsInetAddressRecord inetRecord, int interfaceIndex) {
+ if (inetRecord.getInet4Address() != null) {
+ response.setInet4AddressRecord(inetRecord);
+ response.setInterfaceIndex(interfaceIndex);
+ } else if (inetRecord.getInet6Address() != null) {
+ response.setInet6AddressRecord(inetRecord);
+ response.setInterfaceIndex(interfaceIndex);
+ }
+ }
+
+ private static List<MdnsResponse> findResponsesWithHostName(
+ @Nullable List<MdnsResponse> responses, String[] hostName) {
+ if (responses == null || responses.isEmpty()) {
+ return List.of();
+ }
+
+ List<MdnsResponse> result = null;
+ for (MdnsResponse response : responses) {
+ MdnsServiceRecord serviceRecord = response.getServiceRecord();
+ if (serviceRecord == null) {
+ continue;
+ }
+ if (Arrays.equals(serviceRecord.getServiceHost(), hostName)) {
+ if (result == null) {
+ result = new ArrayList<>(/* initialCapacity= */ responses.size());
+ }
+ result.add(response);
+ }
+ }
+ return result == null ? List.of() : result;
+ }
+
public static class Clock {
public long elapsedRealtime() {
return SystemClock.elapsedRealtime();
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java
index 7d645e3..f1b2def 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceInfo.java
@@ -72,7 +72,9 @@
private final List<String> subtypes;
private final String[] hostName;
private final int port;
+ @Nullable
private final String ipv4Address;
+ @Nullable
private final String ipv6Address;
final List<String> textStrings;
@Nullable
@@ -85,12 +87,12 @@
public MdnsServiceInfo(
String serviceInstanceName,
String[] serviceType,
- List<String> subtypes,
+ @Nullable List<String> subtypes,
String[] hostName,
int port,
- String ipv4Address,
- String ipv6Address,
- List<String> textStrings) {
+ @Nullable String ipv4Address,
+ @Nullable String ipv6Address,
+ @Nullable List<String> textStrings) {
this(
serviceInstanceName,
serviceType,
@@ -111,9 +113,9 @@
List<String> subtypes,
String[] hostName,
int port,
- String ipv4Address,
- String ipv6Address,
- List<String> textStrings,
+ @Nullable String ipv4Address,
+ @Nullable String ipv6Address,
+ @Nullable List<String> textStrings,
@Nullable List<TextEntry> textEntries) {
this(
serviceInstanceName,
@@ -136,12 +138,12 @@
public MdnsServiceInfo(
String serviceInstanceName,
String[] serviceType,
- List<String> subtypes,
+ @Nullable List<String> subtypes,
String[] hostName,
int port,
- String ipv4Address,
- String ipv6Address,
- List<String> textStrings,
+ @Nullable String ipv4Address,
+ @Nullable String ipv6Address,
+ @Nullable List<String> textStrings,
@Nullable List<TextEntry> textEntries,
int interfaceIndex) {
this.serviceInstanceName = serviceInstanceName;
@@ -191,45 +193,44 @@
return Collections.unmodifiableList(list);
}
- /** @return the name of this service instance. */
+ /** Returns the name of this service instance. */
public String getServiceInstanceName() {
return serviceInstanceName;
}
- /** @return the type of this service instance. */
+ /** Returns the type of this service instance. */
public String[] getServiceType() {
return serviceType;
}
- /** @return the list of subtypes supported by this service instance. */
+ /** Returns the list of subtypes supported by this service instance. */
public List<String> getSubtypes() {
return new ArrayList<>(subtypes);
}
- /**
- * @return {@code true} if this service instance supports any subtypes.
- * @return {@code false} if this service instance does not support any subtypes.
- */
+ /** Returns {@code true} if this service instance supports any subtypes. */
public boolean hasSubtypes() {
return !subtypes.isEmpty();
}
- /** @return the host name of this service instance. */
+ /** Returns the host name of this service instance. */
public String[] getHostName() {
return hostName;
}
- /** @return the port number of this service instance. */
+ /** Returns the port number of this service instance. */
public int getPort() {
return port;
}
- /** @return the IPV4 address of this service instance. */
+ /** Returns the IPV4 address of this service instance. */
+ @Nullable
public String getIpv4Address() {
return ipv4Address;
}
- /** @return the IPV6 address of this service instance. */
+ /** Returns the IPV6 address of this service instance. */
+ @Nullable
public String getIpv6Address() {
return ipv6Address;
}
@@ -265,7 +266,7 @@
return attributes.get(key.toLowerCase(Locale.ENGLISH));
}
- /** @return an immutable map of all attributes. */
+ /** Returns an immutable map of all attributes. */
public Map<String, String> getAttributes() {
Map<String, String> map = new HashMap<>(attributes.size());
for (Map.Entry<String, byte[]> kv : attributes.entrySet()) {
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceRecord.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceRecord.java
index 7f54d96..c52d25e 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceRecord.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceRecord.java
@@ -16,6 +16,8 @@
package com.android.server.connectivity.mdns;
+import android.annotation.Nullable;
+
import com.android.internal.annotations.VisibleForTesting;
import java.io.IOException;
@@ -24,8 +26,6 @@
import java.util.Objects;
/** An mDNS "SRV" record, which contains service information. */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
@VisibleForTesting
public class MdnsServiceRecord extends MdnsRecord {
public static final int PROTO_NONE = 0;
@@ -131,7 +131,7 @@
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
if (this == other) {
return true;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
index be993e2..8ca71b9 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsServiceTypeClient.java
@@ -29,6 +29,8 @@
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.connectivity.mdns.util.MdnsLogger;
+import java.net.Inet4Address;
+import java.net.Inet6Address;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@@ -43,8 +45,6 @@
* Instance of this class sends and receives mDNS packets of a given service type and invoke
* registered {@link MdnsServiceBrowserListener} instances.
*/
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public class MdnsServiceTypeClient {
private static final int DEFAULT_MTU = 1500;
@@ -70,6 +70,7 @@
private long currentSessionId = 0;
@GuardedBy("lock")
+ @Nullable
private Future<?> requestTaskFuture;
/**
@@ -96,14 +97,25 @@
String ipv4Address = null;
String ipv6Address = null;
if (response.hasInet4AddressRecord()) {
- ipv4Address = response.getInet4AddressRecord().getInet4Address().getHostAddress();
+ Inet4Address inet4Address = response.getInet4AddressRecord().getInet4Address();
+ ipv4Address = (inet4Address == null) ? null : inet4Address.getHostAddress();
}
if (response.hasInet6AddressRecord()) {
- ipv6Address = response.getInet6AddressRecord().getInet6Address().getHostAddress();
+ 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");
}
// TODO: Throw an error message if response doesn't have Inet6 or Inet4 address.
return new MdnsServiceInfo(
- response.getServiceInstanceName(),
+ serviceInstanceName,
serviceTypeLabels,
response.getSubtypes(),
hostName,
@@ -128,8 +140,7 @@
@NonNull MdnsSearchOptions searchOptions) {
synchronized (lock) {
this.searchOptions = searchOptions;
- if (!listeners.contains(listener)) {
- listeners.add(listener);
+ if (listeners.add(listener)) {
for (MdnsResponse existingResponse : instanceNameToResponse.values()) {
if (existingResponse.isComplete()) {
listener.onServiceFound(
@@ -212,7 +223,10 @@
if (currentResponse == null) {
newServiceFound = true;
currentResponse = response;
- instanceNameToResponse.put(response.getServiceInstanceName(), currentResponse);
+ String serviceInstanceName = response.getServiceInstanceName();
+ if (serviceInstanceName != null) {
+ instanceNameToResponse.put(serviceInstanceName, currentResponse);
+ }
} else if (currentResponse.mergeRecordsFrom(response)) {
existingServiceChanged = true;
}
@@ -231,7 +245,10 @@
}
}
- private void onGoodbyeReceived(@NonNull String serviceInstanceName) {
+ private void onGoodbyeReceived(@Nullable String serviceInstanceName) {
+ if (serviceInstanceName == null) {
+ return;
+ }
instanceNameToResponse.remove(serviceInstanceName);
for (MdnsServiceBrowserListener listener : listeners) {
listener.onServiceRemoved(serviceInstanceName);
@@ -367,7 +384,7 @@
config.expectUnicastResponse,
config.transactionId)
.call();
- } catch (Exception e) {
+ } catch (RuntimeException e) {
LOGGER.e(String.format("Failed to run EnqueueMdnsQueryCallable for subtype: %s",
TextUtils.join(",", config.subtypes)), e);
result = null;
@@ -405,8 +422,11 @@
== 0) {
iter.remove();
for (MdnsServiceBrowserListener listener : listeners) {
- listener.onServiceRemoved(
- existingResponse.getServiceInstanceName());
+ String serviceInstanceName =
+ existingResponse.getServiceInstanceName();
+ if (serviceInstanceName != null) {
+ listener.onServiceRemoved(serviceInstanceName);
+ }
}
}
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsSocket.java b/service/mdns/com/android/server/connectivity/mdns/MdnsSocket.java
index 3442430..0a9b2fc 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsSocket.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsSocket.java
@@ -34,8 +34,6 @@
*
* @see MulticastSocket for javadoc of each public method.
*/
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public class MdnsSocket {
private static final MdnsLogger LOGGER = new MdnsLogger("MdnsSocket");
@@ -44,16 +42,22 @@
new InetSocketAddress(MdnsConstants.getMdnsIPv4Address(), MdnsConstants.MDNS_PORT);
private static final InetSocketAddress MULTICAST_IPV6_ADDRESS =
new InetSocketAddress(MdnsConstants.getMdnsIPv6Address(), MdnsConstants.MDNS_PORT);
- private static boolean isOnIPv6OnlyNetwork = false;
private final MulticastNetworkInterfaceProvider multicastNetworkInterfaceProvider;
private final MulticastSocket multicastSocket;
+ private boolean isOnIPv6OnlyNetwork;
public MdnsSocket(
@NonNull MulticastNetworkInterfaceProvider multicastNetworkInterfaceProvider, int port)
throws IOException {
+ this(multicastNetworkInterfaceProvider, new MulticastSocket(port));
+ }
+
+ @VisibleForTesting
+ MdnsSocket(@NonNull MulticastNetworkInterfaceProvider multicastNetworkInterfaceProvider,
+ MulticastSocket multicastSocket) throws IOException {
this.multicastNetworkInterfaceProvider = multicastNetworkInterfaceProvider;
this.multicastNetworkInterfaceProvider.startWatchingConnectivityChanges();
- multicastSocket = createMulticastSocket(port);
+ this.multicastSocket = multicastSocket;
// RFC Spec: https://tools.ietf.org/html/rfc6762
// Time to live is set 255, which is similar to the jMDNS implementation.
multicastSocket.setTimeToLive(255);
@@ -121,11 +125,6 @@
}
}
- @VisibleForTesting
- MulticastSocket createMulticastSocket(int port) throws IOException {
- return new MulticastSocket(port);
- }
-
public boolean isOnIPv6OnlyNetwork() {
return isOnIPv6OnlyNetwork;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsSocketClient.java b/service/mdns/com/android/server/connectivity/mdns/MdnsSocketClient.java
index 6cbe3c7..758221a 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsSocketClient.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsSocketClient.java
@@ -46,8 +46,6 @@
*
* <p>See https://tools.ietf.org/html/rfc6763 (namely sections 4 and 5).
*/
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
public class MdnsSocketClient {
private static final String TAG = "MdnsClient";
@@ -71,7 +69,7 @@
final Queue<DatagramPacket> unicastPacketQueue = new ArrayDeque<>();
private final Context context;
private final byte[] multicastReceiverBuffer = new byte[RECEIVER_BUFFER_SIZE];
- private final byte[] unicastReceiverBuffer;
+ @Nullable private final byte[] unicastReceiverBuffer;
private final MdnsResponseDecoder responseDecoder;
private final MulticastLock multicastLock;
private final boolean useSeparateSocketForUnicast =
@@ -94,20 +92,17 @@
// If the phone is the bad state where it can't receive any multicast response.
@VisibleForTesting
AtomicBoolean cannotReceiveMulticastResponse = new AtomicBoolean(false);
- @VisibleForTesting
- volatile Thread sendThread;
- @VisibleForTesting
- Thread multicastReceiveThread;
- @VisibleForTesting
- Thread unicastReceiveThread;
+ @VisibleForTesting @Nullable volatile Thread sendThread;
+ @VisibleForTesting @Nullable Thread multicastReceiveThread;
+ @VisibleForTesting @Nullable Thread unicastReceiveThread;
private volatile boolean shouldStopSocketLoop;
- private Callback callback;
- private MdnsSocket multicastSocket;
- private MdnsSocket unicastSocket;
+ @Nullable private Callback callback;
+ @Nullable private MdnsSocket multicastSocket;
+ @Nullable private MdnsSocket unicastSocket;
private int receivedPacketNumber = 0;
- private Timer logMdnsPacketTimer;
+ @Nullable private Timer logMdnsPacketTimer;
private AtomicInteger packetsCount;
- private Timer checkMulticastResponseTimer;
+ @Nullable private Timer checkMulticastResponseTimer;
public MdnsSocketClient(@NonNull Context context, @NonNull MulticastLock multicastLock) {
this.context = context;
@@ -248,7 +243,12 @@
if (useSeparateSocketForUnicast) {
unicastReceiveThread =
- new Thread(() -> receiveThreadMain(unicastReceiverBuffer, unicastSocket));
+ new Thread(
+ () -> {
+ if (unicastReceiverBuffer != null) {
+ receiveThreadMain(unicastReceiverBuffer, unicastSocket);
+ }
+ });
unicastReceiveThread.setName("mdns-unicast-receive");
unicastReceiveThread.start();
}
@@ -327,11 +327,15 @@
unicastPacketsToSend.addAll(unicastPacketQueue);
unicastPacketQueue.clear();
}
+ if (unicastSocket != null) {
+ sendPackets(unicastPacketsToSend, unicastSocket);
+ }
}
- // Send all the packets.
- sendPackets(multicastPacketsToSend, multicastSocket);
- sendPackets(unicastPacketsToSend, unicastSocket);
+ // Send multicast packets.
+ if (multicastSocket != null) {
+ sendPackets(multicastPacketsToSend, multicastSocket);
+ }
// Sleep ONLY if no more packets have been added to the queue, while packets
// were being sent.
@@ -351,7 +355,9 @@
} finally {
LOGGER.log("Send thread stopped.");
try {
- multicastSocket.leaveGroup();
+ if (multicastSocket != null) {
+ multicastSocket.leaveGroup();
+ }
} catch (Exception t) {
LOGGER.e("Failed to leave the group.", t);
}
@@ -359,17 +365,19 @@
// Close the socket first. This is the only way to interrupt a blocking receive.
try {
// This is a race with the use of the file descriptor (b/27403984).
- multicastSocket.close();
+ if (multicastSocket != null) {
+ multicastSocket.close();
+ }
if (unicastSocket != null) {
unicastSocket.close();
}
- } catch (Exception t) {
+ } catch (RuntimeException t) {
LOGGER.e("Failed to close the mdns socket.", t);
}
}
}
- private void receiveThreadMain(byte[] receiverBuffer, MdnsSocket socket) {
+ private void receiveThreadMain(byte[] receiverBuffer, @Nullable MdnsSocket socket) {
DatagramPacket packet = new DatagramPacket(receiverBuffer, receiverBuffer.length);
while (!shouldStopSocketLoop) {
@@ -500,7 +508,7 @@
}
public boolean isOnIPv6OnlyNetwork() {
- return multicastSocket.isOnIPv6OnlyNetwork();
+ return multicastSocket != null && multicastSocket.isOnIPv6OnlyNetwork();
}
/** Callback for {@link MdnsSocketClient}. */
diff --git a/service/mdns/com/android/server/connectivity/mdns/MdnsTextRecord.java b/service/mdns/com/android/server/connectivity/mdns/MdnsTextRecord.java
index 73ecdfa..1e66589 100644
--- a/service/mdns/com/android/server/connectivity/mdns/MdnsTextRecord.java
+++ b/service/mdns/com/android/server/connectivity/mdns/MdnsTextRecord.java
@@ -16,6 +16,8 @@
package com.android.server.connectivity.mdns;
+import android.annotation.Nullable;
+
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.connectivity.mdns.MdnsServiceInfo.TextEntry;
@@ -26,8 +28,6 @@
import java.util.Objects;
/** An mDNS "TXT" record, which contains a list of {@link TextEntry}. */
-// TODO(b/242631897): Resolve nullness suppression.
-@SuppressWarnings("nullness")
@VisibleForTesting
public class MdnsTextRecord extends MdnsRecord {
private List<TextEntry> entries;
@@ -90,7 +90,7 @@
}
@Override
- public boolean equals(Object other) {
+ public boolean equals(@Nullable Object other) {
if (this == other) {
return true;
}
diff --git a/service/mdns/com/android/server/connectivity/mdns/util/MdnsLogger.java b/service/mdns/com/android/server/connectivity/mdns/util/MdnsLogger.java
index 431f1fd..63107e5 100644
--- a/service/mdns/com/android/server/connectivity/mdns/util/MdnsLogger.java
+++ b/service/mdns/com/android/server/connectivity/mdns/util/MdnsLogger.java
@@ -16,6 +16,7 @@
package com.android.server.connectivity.mdns.util;
+import android.annotation.Nullable;
import android.text.TextUtils;
import com.android.net.module.util.SharedLog;
@@ -40,7 +41,7 @@
mLog.log(message);
}
- public void log(String message, Object... args) {
+ public void log(String message, @Nullable Object... args) {
mLog.log(message + " ; " + TextUtils.join(" ; ", args));
}
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index d52f411..2535974 100755
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -75,6 +75,7 @@
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;
@@ -1982,9 +1983,6 @@
@Nullable
public NetworkInfo getNetworkInfoForUid(Network network, int uid, boolean ignoreBlocked) {
enforceAccessPermission();
- if (uid != mDeps.getCallingUid()) {
- enforceNetworkStackPermission(mContext);
- }
final NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
if (nai == null) return null;
return getFilteredNetworkInfo(nai, uid, ignoreBlocked);
@@ -2809,6 +2807,13 @@
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
}
+ private void enforceSettingsOrUseRestrictedNetworksPermission() {
+ enforceAnyPermissionOf(mContext,
+ android.Manifest.permission.NETWORK_SETTINGS,
+ NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
+ Manifest.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS);
+ }
+
private void enforceNetworkFactoryPermission() {
// TODO: Check for the BLUETOOTH_STACK permission once that is in the API surface.
if (UserHandle.getAppId(getCallingUid()) == Process.BLUETOOTH_UID) return;
@@ -6655,7 +6660,7 @@
enforceAccessPermission();
break;
case TRACK_SYSTEM_DEFAULT:
- enforceSettingsPermission();
+ enforceSettingsOrUseRestrictedNetworksPermission();
networkCapabilities = new NetworkCapabilities(defaultNc);
break;
case BACKGROUND_REQUEST:
@@ -8047,6 +8052,10 @@
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,
@@ -8057,7 +8066,7 @@
!= newNc.hasCapability(NET_CAPABILITY_NOT_ROAMING);
// Report changes that are interesting for network statistics tracking.
- if (meteredChanged || roamingChanged) {
+ if (meteredChanged || roamingChanged || tempMeteredChanged) {
notifyIfacesChangedForNetworkStats();
}
diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java
index 5f032be..8c18a89 100755
--- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java
+++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java
@@ -38,6 +38,7 @@
import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
import static com.android.networkstack.apishim.ConstantsShim.BLOCKED_REASON_LOCKDOWN_VPN;
import static com.android.networkstack.apishim.ConstantsShim.BLOCKED_REASON_NONE;
+import static com.android.networkstack.apishim.ConstantsShim.RECEIVER_EXPORTED;
import static com.android.testutils.Cleanup.testAndCleanup;
import static com.android.testutils.DevSdkIgnoreRuleKt.SC_V2;
@@ -1550,8 +1551,9 @@
final DownloadManager dm = context.getSystemService(DownloadManager.class);
final DownloadCompleteReceiver receiver = new DownloadCompleteReceiver();
try {
+ final int flags = SdkLevel.isAtLeastT() ? RECEIVER_EXPORTED : 0;
context.registerReceiver(receiver,
- new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
+ new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE), flags);
// Enqueue a request and check only one download.
final long id = dm.enqueue(new Request(
diff --git a/tests/cts/net/src/android/net/cts/CaptivePortalTest.kt b/tests/cts/net/src/android/net/cts/CaptivePortalTest.kt
index aad8804..7c24c95 100644
--- a/tests/cts/net/src/android/net/cts/CaptivePortalTest.kt
+++ b/tests/cts/net/src/android/net/cts/CaptivePortalTest.kt
@@ -47,6 +47,7 @@
import androidx.test.platform.app.InstrumentationRegistry.getInstrumentation
import androidx.test.runner.AndroidJUnit4
import com.android.modules.utils.build.SdkLevel.isAtLeastR
+import com.android.testutils.DeviceConfigRule
import com.android.testutils.RecorderCallback
import com.android.testutils.TestHttpServer
import com.android.testutils.TestHttpServer.Request
diff --git a/tests/cts/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java
index 7d1e13f..609aa32 100644
--- a/tests/cts/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java
+++ b/tests/cts/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java
@@ -39,6 +39,7 @@
import static android.net.cts.util.CtsNetUtils.TestNetworkCallback;
import static com.android.compatibility.common.util.SystemUtil.callWithShellPermissionIdentity;
+import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
import static com.android.compatibility.common.util.SystemUtil.runWithShellPermissionIdentity;
import static com.android.testutils.Cleanup.testAndCleanup;
@@ -70,11 +71,13 @@
import android.os.ParcelFileDescriptor;
import android.os.PersistableBundle;
import android.os.Process;
+import android.os.SystemClock;
import android.platform.test.annotations.AppModeFull;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.ArraySet;
+import android.util.Log;
import android.util.Pair;
import androidx.test.InstrumentationRegistry;
@@ -104,6 +107,8 @@
@IgnoreUpTo(Build.VERSION_CODES.Q) // ConnectivityDiagnosticsManager did not exist in Q
@AppModeFull(reason = "CHANGE_NETWORK_STATE, MANAGE_TEST_NETWORKS not grantable to instant apps")
public class ConnectivityDiagnosticsManagerTest {
+ private static final String TAG = ConnectivityDiagnosticsManagerTest.class.getSimpleName();
+
private static final int CALLBACK_TIMEOUT_MILLIS = 5000;
private static final int NO_CALLBACK_INVOKED_TIMEOUT = 500;
private static final long TIMESTAMP = 123456789L;
@@ -113,7 +118,7 @@
private static final int UNKNOWN_DETECTION_METHOD = 4;
private static final int FILTERED_UNKNOWN_DETECTION_METHOD = 0;
private static final int CARRIER_CONFIG_CHANGED_BROADCAST_TIMEOUT = 5000;
- private static final int DELAY_FOR_ADMIN_UIDS_MILLIS = 5000;
+ private static final int DELAY_FOR_BROADCAST_IDLE = 30_000;
private static final Executor INLINE_EXECUTOR = x -> x.run();
@@ -155,6 +160,23 @@
private List<TestConnectivityDiagnosticsCallback> mRegisteredCallbacks;
+ private static void waitForBroadcastIdle(final long timeoutMs) throws InterruptedException {
+ final long st = SystemClock.elapsedRealtime();
+ // am wait-for-broadcast-idle will return immediately if the queue is already idle.
+ final Thread t = new Thread(() -> runShellCommand("am wait-for-broadcast-idle"));
+ t.start();
+ // Two notes about the case where join() times out :
+ // • It is fine to continue running the test. The broadcast queue might still be busy, but
+ // there is no way as of now to wait for a particular broadcast to have been been
+ // processed so it's possible the one the caller is interested in is in fact done,
+ // making it worth running the rest of the test.
+ // • The thread will continue running its course in the test process. In this case it is
+ // fine because the wait-for-broadcast-idle command doesn't have side effects, and the
+ // thread does nothing else.
+ t.join(timeoutMs);
+ Log.i(TAG, "Waited for broadcast idle for " + (SystemClock.elapsedRealtime() - st) + "ms");
+ }
+
@Before
public void setUp() throws Exception {
mContext = InstrumentationRegistry.getContext();
@@ -283,10 +305,11 @@
// broadcast. CPT then needs to update the corresponding DataConnection, which then
// updates ConnectivityService. Unfortunately, this update to the NetworkCapabilities in
// CS does not trigger NetworkCallback#onCapabilitiesChanged as changing the
- // administratorUids is not a publicly visible change. In lieu of a better signal to
- // deterministically wait for, use Thread#sleep here.
- // TODO(b/157949581): replace this Thread#sleep with a deterministic signal
- Thread.sleep(DELAY_FOR_ADMIN_UIDS_MILLIS);
+ // administratorUids is not a publicly visible change. Start by waiting for broadcast
+ // idle to make sure Telephony has received the carrier config change broadcast ; the
+ // delay to pass this information to CS is accounted in the delay in waiting for the
+ // callback.
+ waitForBroadcastIdle(DELAY_FOR_BROADCAST_IDLE);
// TODO(b/217559768): Receiving carrier config change and immediately checking carrier
// privileges is racy, as the CP status is updated after receiving the same signal. Move
diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
index 218eb04..fd219d2 100644
--- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
+++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java
@@ -192,6 +192,7 @@
import com.android.testutils.ConnectivityModuleTest;
import com.android.testutils.DevSdkIgnoreRule;
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
+import com.android.testutils.DeviceConfigRule;
import com.android.testutils.DeviceInfoUtils;
import com.android.testutils.DumpTestUtils;
import com.android.testutils.RecorderCallback.CallbackEntry;
@@ -559,6 +560,11 @@
// got from other APIs.
final Network[] networks = mCm.getAllNetworks();
assertGreaterOrEqual(networks.length, 1);
+ final TestableNetworkCallback allNetworkLinkPropertiesListener =
+ new TestableNetworkCallback();
+ mCm.registerNetworkCallback(new NetworkRequest.Builder().clearCapabilities().build(),
+ allNetworkLinkPropertiesListener);
+
final List<NetworkStateSnapshot> snapshots = runWithShellPermissionIdentity(
() -> mCm.getAllNetworkStateSnapshots(), NETWORK_SETTINGS);
assertEquals(networks.length, snapshots.size());
@@ -584,7 +590,18 @@
assertEquals("", caps.describeImmutableDifferences(
snapshot.getNetworkCapabilities()
.setNetworkSpecifier(redactedSnapshotCapSpecifier)));
- assertEquals(mCm.getLinkProperties(network), snapshot.getLinkProperties());
+
+ // Don't check that the mutable fields are the same with synchronous calls, as
+ // the device may add or remove content of these fields in the middle of the test.
+ // Instead, search the target LinkProperties from received LinkPropertiesChanged
+ // callbacks. This is guaranteed to succeed because the callback is registered
+ // before getAllNetworkStateSnapshots is called.
+ final LinkProperties lpFromSnapshot = snapshot.getLinkProperties();
+ allNetworkLinkPropertiesListener.eventuallyExpect(CallbackEntry.LINK_PROPERTIES_CHANGED,
+ NETWORK_CALLBACK_TIMEOUT_MS, 0 /* mark */, entry ->
+ entry.getNetwork().equals(network)
+ && entry.getLp().equals(lpFromSnapshot));
+
assertEquals(mCm.getNetworkInfo(network).getType(), snapshot.getLegacyType());
if (network.equals(cellNetwork)) {
@@ -1047,12 +1064,22 @@
final TestNetworkCallback bestMatchingCallback = new TestNetworkCallback();
final Handler h = new Handler(Looper.getMainLooper());
if (TestUtils.shouldTestSApis()) {
+ assertThrows(SecurityException.class, () ->
+ registerSystemDefaultNetworkCallback(systemDefaultCallback, h));
runWithShellPermissionIdentity(() -> {
registerSystemDefaultNetworkCallback(systemDefaultCallback, h);
registerDefaultNetworkCallbackForUid(Process.myUid(), perUidCallback, h);
}, NETWORK_SETTINGS);
registerBestMatchingNetworkCallback(makeDefaultRequest(), bestMatchingCallback, h);
}
+ if (TestUtils.shouldTestTApis()) {
+ // Verify registerSystemDefaultNetworkCallback can be accessed via
+ // CONNECTIVITY_USE_RESTRICTED_NETWORKS permission.
+ final TestNetworkCallback systemDefaultCallback2 = new TestNetworkCallback();
+ runWithShellPermissionIdentity(() ->
+ registerSystemDefaultNetworkCallback(systemDefaultCallback2, h),
+ CONNECTIVITY_USE_RESTRICTED_NETWORKS);
+ }
Network wifiNetwork = null;
mCtsNetUtils.ensureWifiConnected();
diff --git a/tests/cts/net/src/android/net/cts/DeviceConfigRule.kt b/tests/cts/net/src/android/net/cts/DeviceConfigRule.kt
deleted file mode 100644
index 3a36cee..0000000
--- a/tests/cts/net/src/android/net/cts/DeviceConfigRule.kt
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * 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.cts
-
-import android.Manifest.permission.READ_DEVICE_CONFIG
-import android.Manifest.permission.WRITE_DEVICE_CONFIG
-import android.provider.DeviceConfig
-import android.util.Log
-import com.android.modules.utils.build.SdkLevel
-import com.android.testutils.FunctionalUtils.ThrowingRunnable
-import com.android.testutils.runAsShell
-import com.android.testutils.tryTest
-import org.junit.rules.TestRule
-import org.junit.runner.Description
-import org.junit.runners.model.Statement
-import java.util.concurrent.CompletableFuture
-import java.util.concurrent.Executor
-import java.util.concurrent.TimeUnit
-
-private val TAG = DeviceConfigRule::class.simpleName
-
-/**
- * A [TestRule] that helps set [DeviceConfig] for tests and clean up the test configuration
- * automatically on teardown.
- *
- * The rule can also optionally retry tests when they fail following an external change of
- * DeviceConfig before S; this typically happens because device config flags are synced while the
- * test is running, and DisableConfigSyncTargetPreparer is only usable starting from S.
- *
- * @param retryCountBeforeSIfConfigChanged if > 0, when the test fails before S, check if
- * the configs that were set through this rule were changed, and retry the test
- * up to the specified number of times if yes.
- */
-class DeviceConfigRule @JvmOverloads constructor(
- val retryCountBeforeSIfConfigChanged: Int = 0
-) : TestRule {
- // Maps (namespace, key) -> value
- private val originalConfig = mutableMapOf<Pair<String, String>, String?>()
- private val usedConfig = mutableMapOf<Pair<String, String>, String?>()
-
- /**
- * Actions to be run after cleanup of the config, for the current test only.
- */
- private val currentTestCleanupActions = mutableListOf<ThrowingRunnable>()
-
- override fun apply(base: Statement, description: Description): Statement {
- return TestValidationUrlStatement(base, description)
- }
-
- private inner class TestValidationUrlStatement(
- private val base: Statement,
- private val description: Description
- ) : Statement() {
- override fun evaluate() {
- var retryCount = if (SdkLevel.isAtLeastS()) 1 else retryCountBeforeSIfConfigChanged + 1
- while (retryCount > 0) {
- retryCount--
- tryTest {
- base.evaluate()
- // Can't use break/return out of a loop here because this is a tryTest lambda,
- // so set retryCount to exit instead
- retryCount = 0
- }.catch<Throwable> { e -> // junit AssertionFailedError does not extend Exception
- if (retryCount == 0) throw e
- usedConfig.forEach { (key, value) ->
- val currentValue = runAsShell(READ_DEVICE_CONFIG) {
- DeviceConfig.getProperty(key.first, key.second)
- }
- if (currentValue != value) {
- Log.w(TAG, "Test failed with unexpected device config change, retrying")
- return@catch
- }
- }
- throw e
- } cleanupStep {
- runAsShell(WRITE_DEVICE_CONFIG) {
- originalConfig.forEach { (key, value) ->
- DeviceConfig.setProperty(
- key.first, key.second, value, false /* makeDefault */)
- }
- }
- } cleanupStep {
- originalConfig.clear()
- usedConfig.clear()
- } cleanup {
- // Fold all cleanup actions into cleanup steps of an empty tryTest, so they are
- // all run even if exceptions are thrown, and exceptions are reported properly.
- currentTestCleanupActions.fold(tryTest { }) {
- tryBlock, action -> tryBlock.cleanupStep { action.run() }
- }.cleanup {
- currentTestCleanupActions.clear()
- }
- }
- }
- }
- }
-
- /**
- * Set a configuration key/value. After the test case ends, it will be restored to the value it
- * had when this method was first called.
- */
- fun setConfig(namespace: String, key: String, value: String?): String? {
- Log.i(TAG, "Setting config \"$key\" to \"$value\"")
- val readWritePermissions = arrayOf(READ_DEVICE_CONFIG, WRITE_DEVICE_CONFIG)
-
- val keyPair = Pair(namespace, key)
- val existingValue = runAsShell(*readWritePermissions) {
- DeviceConfig.getProperty(namespace, key)
- }
- if (!originalConfig.containsKey(keyPair)) {
- originalConfig[keyPair] = existingValue
- }
- usedConfig[keyPair] = value
- if (existingValue == value) {
- // Already the correct value. There may be a race if a change is already in flight,
- // but if multiple threads update the config there is no way to fix that anyway.
- Log.i(TAG, "\"$key\" already had value \"$value\"")
- return value
- }
-
- val future = CompletableFuture<String>()
- val listener = DeviceConfig.OnPropertiesChangedListener {
- // The listener receives updates for any change to any key, so don't react to
- // changes that do not affect the relevant key
- if (!it.keyset.contains(key)) return@OnPropertiesChangedListener
- // "null" means absent in DeviceConfig : there is no such thing as a present but
- // null value, so the following works even if |value| is null.
- if (it.getString(key, null) == value) {
- future.complete(value)
- }
- }
-
- return tryTest {
- runAsShell(*readWritePermissions) {
- DeviceConfig.addOnPropertiesChangedListener(
- DeviceConfig.NAMESPACE_CONNECTIVITY,
- inlineExecutor,
- listener)
- DeviceConfig.setProperty(
- DeviceConfig.NAMESPACE_CONNECTIVITY,
- key,
- value,
- false /* makeDefault */)
- // Don't drop the permission until the config is applied, just in case
- future.get(NetworkValidationTestUtil.TIMEOUT_MS, TimeUnit.MILLISECONDS)
- }.also {
- Log.i(TAG, "Config \"$key\" successfully set to \"$value\"")
- }
- } cleanup {
- DeviceConfig.removeOnPropertiesChangedListener(listener)
- }
- }
-
- private val inlineExecutor get() = Executor { r -> r.run() }
-
- /**
- * Add an action to be run after config cleanup when the current test case ends.
- */
- fun runAfterNextCleanup(action: ThrowingRunnable) {
- currentTestCleanupActions.add(action)
- }
-}
diff --git a/tests/cts/net/src/android/net/cts/NetworkValidationTestUtil.kt b/tests/cts/net/src/android/net/cts/NetworkValidationTestUtil.kt
index 375bfb8..a0b40aa 100644
--- a/tests/cts/net/src/android/net/cts/NetworkValidationTestUtil.kt
+++ b/tests/cts/net/src/android/net/cts/NetworkValidationTestUtil.kt
@@ -20,6 +20,7 @@
import android.provider.DeviceConfig
import android.provider.DeviceConfig.NAMESPACE_CONNECTIVITY
import com.android.net.module.util.NetworkStackConstants
+import com.android.testutils.DeviceConfigRule
import com.android.testutils.runAsShell
/**
@@ -27,7 +28,6 @@
*/
internal object NetworkValidationTestUtil {
val TAG = NetworkValidationTestUtil::class.simpleName
- const val TIMEOUT_MS = 20_000L
/**
* Clear the test network validation URLs.
diff --git a/tests/unit/java/android/net/IpSecAlgorithmTest.java b/tests/unit/java/android/net/IpSecAlgorithmTest.java
index 1482055..54ad961 100644
--- a/tests/unit/java/android/net/IpSecAlgorithmTest.java
+++ b/tests/unit/java/android/net/IpSecAlgorithmTest.java
@@ -27,6 +27,7 @@
import android.content.res.Resources;
import android.os.Build;
import android.os.Parcel;
+import android.os.SystemProperties;
import androidx.test.filters.SmallTest;
@@ -123,9 +124,7 @@
@Test
public void testValidationForAlgosAddedInS() throws Exception {
- if (Build.VERSION.DEVICE_INITIAL_SDK_INT <= Build.VERSION_CODES.R) {
- return;
- }
+ if (SystemProperties.getInt("ro.vendor.api_level", 10000) <= Build.VERSION_CODES.R) return;
for (int len : new int[] {160, 224, 288}) {
checkCryptKeyLenValidation(IpSecAlgorithm.CRYPT_AES_CTR, len);
@@ -194,15 +193,17 @@
}
private static Set<String> getMandatoryAlgos() {
+ int vendorApiLevel = SystemProperties.getInt("ro.vendor.api_level", 10000);
return CollectionUtils.filter(
ALGO_TO_REQUIRED_FIRST_SDK.keySet(),
- i -> Build.VERSION.DEVICE_INITIAL_SDK_INT >= ALGO_TO_REQUIRED_FIRST_SDK.get(i));
+ i -> vendorApiLevel >= ALGO_TO_REQUIRED_FIRST_SDK.get(i));
}
private static Set<String> getOptionalAlgos() {
+ int vendorApiLevel = SystemProperties.getInt("ro.vendor.api_level", 10000);
return CollectionUtils.filter(
ALGO_TO_REQUIRED_FIRST_SDK.keySet(),
- i -> Build.VERSION.DEVICE_INITIAL_SDK_INT < ALGO_TO_REQUIRED_FIRST_SDK.get(i));
+ i -> vendorApiLevel < ALGO_TO_REQUIRED_FIRST_SDK.get(i));
}
@Test
diff --git a/tests/unit/java/android/net/NetworkTemplateTest.kt b/tests/unit/java/android/net/NetworkTemplateTest.kt
index 6c39169..666da53 100644
--- a/tests/unit/java/android/net/NetworkTemplateTest.kt
+++ b/tests/unit/java/android/net/NetworkTemplateTest.kt
@@ -231,10 +231,15 @@
val mobileImsi1 = buildMobileNetworkState(TEST_IMSI1)
val identMobile1 = buildNetworkIdentity(mockContext, mobileImsi1,
false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_UMTS)
+ val mobileImsi2 = buildMobileNetworkState(TEST_IMSI2)
+ val identMobile2 = buildNetworkIdentity(mockContext, mobileImsi2,
+ false /* defaultNetwork */, TelephonyManager.NETWORK_TYPE_LTE)
// Verify that the template matches any subscriberId.
templateMobileWildcard.assertMatches(identMobile1)
templateMobileNullImsiWithRatType.assertMatches(identMobile1)
+ templateMobileWildcard.assertMatches(identMobile2)
+ templateMobileNullImsiWithRatType.assertDoesNotMatch(identMobile2)
val identWifiImsi1Key1 = buildNetworkIdentity(
mockContext, buildWifiNetworkState(TEST_IMSI1, TEST_WIFI_KEY1), true, 0)
diff --git a/tests/unit/java/com/android/server/ConnectivityServiceTest.java b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
index 083f34d..f80b9bd 100755
--- a/tests/unit/java/com/android/server/ConnectivityServiceTest.java
+++ b/tests/unit/java/com/android/server/ConnectivityServiceTest.java
@@ -1606,9 +1606,9 @@
mMockVpn = new MockVpn(userId);
}
- private void mockUidNetworkingBlocked(int uid) {
+ private void mockUidNetworkingBlocked() {
doAnswer(i -> isUidBlocked(mBlockedReasons, i.getArgument(1))
- ).when(mNetworkPolicyManager).isUidNetworkingBlocked(eq(uid), anyBoolean());
+ ).when(mNetworkPolicyManager).isUidNetworkingBlocked(anyInt(), anyBoolean());
}
private boolean isUidBlocked(int blockedReasons, boolean meteredNetwork) {
@@ -5034,9 +5034,6 @@
@Test
public void testRegisterDefaultNetworkCallback() throws Exception {
- // NETWORK_SETTINGS is necessary to call registerSystemDefaultNetworkCallback.
- mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
-
final TestNetworkCallback defaultNetworkCallback = new TestNetworkCallback();
mCm.registerDefaultNetworkCallback(defaultNetworkCallback);
defaultNetworkCallback.assertNoCallback();
@@ -5181,9 +5178,10 @@
}
@Test
- public void testRegisterPrivilegedDefaultCallbacksRequireNetworkSettings() throws Exception {
+ public void testRegisterPrivilegedDefaultCallbacksRequirePermissions() throws Exception {
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
mCellNetworkAgent.connect(false /* validated */);
+ mServiceContext.setPermission(CONNECTIVITY_USE_RESTRICTED_NETWORKS, PERMISSION_DENIED);
final Handler handler = new Handler(ConnectivityThread.getInstanceLooper());
final TestNetworkCallback callback = new TestNetworkCallback();
@@ -5194,6 +5192,12 @@
() -> mCm.registerDefaultNetworkCallbackForUid(APP1_UID, callback, handler));
callback.assertNoCallback();
+ mServiceContext.setPermission(CONNECTIVITY_USE_RESTRICTED_NETWORKS, PERMISSION_GRANTED);
+ mCm.registerSystemDefaultNetworkCallback(callback, handler);
+ mServiceContext.setPermission(CONNECTIVITY_USE_RESTRICTED_NETWORKS, PERMISSION_DENIED);
+ callback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
+ mCm.unregisterNetworkCallback(callback);
+
mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
mCm.registerSystemDefaultNetworkCallback(callback, handler);
callback.expectAvailableCallbacksUnvalidated(mCellNetworkAgent);
@@ -7332,9 +7336,15 @@
expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
reset(mStatsManager);
- // Temp metered change shouldn't update ifaces
+ // Temp metered change should update ifaces
mCellNetworkAgent.addCapability(NET_CAPABILITY_TEMPORARILY_NOT_METERED);
waitForIdle();
+ expectNotifyNetworkStatus(onlyCell(), onlyCell(), MOBILE_IFNAME);
+ reset(mStatsManager);
+
+ // Congested change shouldn't update ifaces
+ mCellNetworkAgent.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED);
+ waitForIdle();
verify(mStatsManager, never()).notifyNetworkStatus(eq(onlyCell()),
any(List.class), eq(MOBILE_IFNAME), any(List.class));
reset(mStatsManager);
@@ -8274,9 +8284,6 @@
@Test
public void testVpnNetworkActive() throws Exception {
- // NETWORK_SETTINGS is necessary to call registerSystemDefaultNetworkCallback.
- mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
-
final int uid = Process.myUid();
final TestNetworkCallback genericNetworkCallback = new TestNetworkCallback();
@@ -9109,7 +9116,7 @@
final DetailedBlockedStatusCallback detailedCallback = new DetailedBlockedStatusCallback();
mCm.registerNetworkCallback(cellRequest, detailedCallback);
- mockUidNetworkingBlocked(Process.myUid());
+ mockUidNetworkingBlocked();
mCellNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_CELLULAR);
mCellNetworkAgent.connect(true);
@@ -9224,7 +9231,7 @@
public void testNetworkBlockedStatusBeforeAndAfterConnect() throws Exception {
final TestNetworkCallback defaultCallback = new TestNetworkCallback();
mCm.registerDefaultNetworkCallback(defaultCallback);
- mockUidNetworkingBlocked(Process.myUid());
+ mockUidNetworkingBlocked();
// No Networkcallbacks invoked before any network is active.
setBlockedReasonChanged(BLOCKED_REASON_BATTERY_SAVER);
@@ -9621,8 +9628,6 @@
public void testLegacyLockdownVpn() throws Exception {
mServiceContext.setPermission(
Manifest.permission.CONTROL_VPN, PERMISSION_GRANTED);
- // For LockdownVpnTracker to call registerSystemDefaultNetworkCallback.
- mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
final NetworkRequest request = new NetworkRequest.Builder().clearCapabilities().build();
final TestNetworkCallback callback = new TestNetworkCallback();
@@ -13120,8 +13125,6 @@
throw new IllegalStateException("Default network callbacks already registered");
}
- // Using Manifest.permission.NETWORK_SETTINGS for registerSystemDefaultNetworkCallback()
- mServiceContext.setPermission(NETWORK_SETTINGS, PERMISSION_GRANTED);
mSystemDefaultNetworkCallback = new TestNetworkCallback();
mDefaultNetworkCallback = new TestNetworkCallback();
mProfileDefaultNetworkCallback = new TestNetworkCallback();
@@ -17030,43 +17033,4 @@
verify(mTetheringManager).getTetherableWifiRegexs();
});
}
-
- @Test
- public void testGetNetworkInfoForUid() throws Exception {
- // Setup and verify getNetworkInfoForUid cannot be called without Network Stack permission,
- // when querying NetworkInfo for other uid.
- verifyNoNetwork();
- mWiFiNetworkAgent = new TestNetworkAgentWrapper(TRANSPORT_WIFI);
- mServiceContext.setPermission(NETWORK_STACK, PERMISSION_DENIED);
- mServiceContext.setPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
- PERMISSION_DENIED);
-
- final int otherUid = Process.myUid() + 1;
- assertNull(mCm.getActiveNetwork());
- assertNull(mCm.getNetworkInfoForUid(mCm.getActiveNetwork(),
- Process.myUid(), false /* ignoreBlocked */));
- assertThrows(SecurityException.class, () -> mCm.getNetworkInfoForUid(
- mCm.getActiveNetwork(), otherUid, false /* ignoreBlocked */));
- withPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, () ->
- assertNull(mCm.getNetworkInfoForUid(mCm.getActiveNetwork(),
- otherUid, false /* ignoreBlocked */)));
-
- // Bringing up validated wifi and verify again. Make the other uid be blocked,
- // verify the method returns result accordingly.
- mWiFiNetworkAgent.connect(true);
- setBlockedReasonChanged(BLOCKED_REASON_BATTERY_SAVER);
- mockUidNetworkingBlocked(otherUid);
- withPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, () ->
- verifyActiveNetwork(TRANSPORT_WIFI));
- checkNetworkInfo(mCm.getNetworkInfoForUid(mCm.getActiveNetwork(),
- Process.myUid(), false /* ignoreBlocked */), TYPE_WIFI, DetailedState.CONNECTED);
- assertThrows(SecurityException.class, () -> mCm.getNetworkInfoForUid(
- mCm.getActiveNetwork(), otherUid, false /* ignoreBlocked */));
- withPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, () ->
- checkNetworkInfo(mCm.getNetworkInfoForUid(mCm.getActiveNetwork(),
- otherUid, false /* ignoreBlocked */), TYPE_WIFI, DetailedState.BLOCKED));
- withPermission(NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, () ->
- checkNetworkInfo(mCm.getNetworkInfoForUid(mCm.getActiveNetwork(),
- otherUid, true /* ignoreBlocked */), TYPE_WIFI, DetailedState.CONNECTED));
- }
}
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java
index 8d0ace5..02e00c2 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsResponseDecoderTests.java
@@ -26,11 +26,14 @@
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
+import android.net.InetAddresses;
+
import com.android.net.module.util.HexDump;
import com.android.testutils.DevSdkIgnoreRule;
import com.android.testutils.DevSdkIgnoreRunner;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -106,9 +109,49 @@
+ "63616C0000018001000000780004C0A8010A000001800100000078"
+ "0004C0A8010A00000000000000");
+ // Expected to contain two SRV records which point to the same hostname.
+ private static final byte[] matterDuplicateHostname = HexDump.hexStringToByteArray(
+ "00008000000000080000000A095F7365727669636573075F646E732D73"
+ + "64045F756470056C6F63616C00000C000100000078000F075F6D61"
+ + "74746572045F746370C023C00C000C000100000078001A125F4943"
+ + "324639453337374632454139463430045F737562C034C034000C00"
+ + "0100000078002421433246394533373746324541394634302D3030"
+ + "3030303030304534443041334641C034C04F000C00010000007800"
+ + "02C075C00C000C0001000000780002C034C00C000C000100000078"
+ + "0015125F4941413035363731333439334135343144C062C034000C"
+ + "000100000078002421414130353637313334393341353431442D30"
+ + "303030303030304331324446303344C034C0C1000C000100000078"
+ + "0002C0E2C075002100010000007800150000000015A40C33433631"
+ + "3035304338394638C023C07500100001000011940015084352493D"
+ + "35303030074352413D33303003543D31C126001C00010000007800"
+ + "10FE800000000000003E6105FFFE0C89F8C126001C000100000078"
+ + "00102605A601A84657003E6105FFFE0C89F8C12600010001000000"
+ + "780004C0A8018AC0E2002100010000007800080000000015A4C126"
+ + "C0E200100001000011940015084352493D35303030074352413D33"
+ + "303003543D31C126001C0001000000780010FE800000000000003E"
+ + "6105FFFE0C89F8C126001C00010000007800102605A601A8465700"
+ + "3E6105FFFE0C89F8C12600010001000000780004C0A8018A313035"
+ + "304338394638C02300010001000000780004C0A8018AC0A0001000"
+ + "0100001194003A0E56503D36353532312B3332373639084352493D"
+ + "35303030074352413D33303003543D3106443D3236353704434D3D"
+ + "320550483D33360350493D21433246394533373746324541394634"
+ + "302D30303030303030304534443041334641C0F700210001000000"
+ + "7800150000000015A40C334336313035304338394638C023214332"
+ + "46394533373746324541394634302D303030303030303045344430"
+ + "41334641C0F700100001000011940015084352493D353030300743"
+ + "52413D33303003543D310C334336313035304338394638C023001C"
+ + "0001000000780010FE800000000000003E6105FFFE0C89F80C3343"
+ + "36313035304338394638C023001C00010000007800102605A601A8"
+ + "4657003E6105FFFE0C89F80C334336313035304338394638C02300"
+ + "010001000000780004C0A8018A0000000000000000000000000000"
+ + "000000");
+
private static final String CAST_SERVICE_NAME = "_googlecast";
private static final String[] CAST_SERVICE_TYPE =
new String[] {CAST_SERVICE_NAME, "_tcp", "local"};
+ private static final String MATTER_SERVICE_NAME = "_matter";
+ private static final String[] MATTER_SERVICE_TYPE =
+ new String[] {MATTER_SERVICE_NAME, "_tcp", "local"};
private final List<MdnsResponse> responses = new LinkedList<>();
@@ -249,4 +292,62 @@
assertEquals(responses.size(), 1);
assertEquals(responses.get(0).getInterfaceIndex(), 10);
}
+
+ @Test
+ public void decode_singleHostname_multipleSrvRecords_flagEnabled_multipleCompleteResponses() {
+ //MdnsScannerConfigsFlagsImpl.allowMultipleSrvRecordsPerHost.override(true);
+ MdnsResponseDecoder decoder = new MdnsResponseDecoder(mClock, MATTER_SERVICE_TYPE);
+ assertNotNull(matterDuplicateHostname);
+
+ DatagramPacket packet =
+ new DatagramPacket(matterDuplicateHostname, matterDuplicateHostname.length);
+
+ packet.setSocketAddress(
+ new InetSocketAddress(MdnsConstants.getMdnsIPv6Address(), MdnsConstants.MDNS_PORT));
+
+ responses.clear();
+ int errorCode = decoder.decode(packet, responses, /* interfaceIndex= */ 0);
+ assertEquals(MdnsResponseDecoder.SUCCESS, errorCode);
+
+ // This should emit two records:
+ assertEquals(2, responses.size());
+
+ MdnsResponse response1 = responses.get(0);
+ MdnsResponse response2 = responses.get(0);
+
+ // Both of which are complete:
+ assertTrue(response1.isComplete());
+ assertTrue(response2.isComplete());
+
+ // And should both have the same IPv6 address:
+ assertEquals(InetAddresses.parseNumericAddress("2605:a601:a846:5700:3e61:5ff:fe0c:89f8"),
+ response1.getInet6AddressRecord().getInet6Address());
+ assertEquals(InetAddresses.parseNumericAddress("2605:a601:a846:5700:3e61:5ff:fe0c:89f8"),
+ response2.getInet6AddressRecord().getInet6Address());
+ }
+
+ @Test
+ @Ignore("MdnsConfigs is not configurable currently.")
+ public void decode_singleHostname_multipleSrvRecords_flagDisabled_singleCompleteResponse() {
+ //MdnsScannerConfigsFlagsImpl.allowMultipleSrvRecordsPerHost.override(false);
+ MdnsResponseDecoder decoder = new MdnsResponseDecoder(mClock, MATTER_SERVICE_TYPE);
+ assertNotNull(matterDuplicateHostname);
+
+ DatagramPacket packet =
+ new DatagramPacket(matterDuplicateHostname, matterDuplicateHostname.length);
+
+ packet.setSocketAddress(
+ new InetSocketAddress(MdnsConstants.getMdnsIPv6Address(), MdnsConstants.MDNS_PORT));
+
+ responses.clear();
+ int errorCode = decoder.decode(packet, responses, /* interfaceIndex= */ 0);
+ assertEquals(MdnsResponseDecoder.SUCCESS, errorCode);
+
+ // This should emit only two records:
+ assertEquals(2, responses.size());
+
+ // But only the first is complete:
+ assertTrue(responses.get(0).isComplete());
+ assertFalse(responses.get(1).isComplete());
+ }
}
\ No newline at end of file
diff --git a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketTests.java b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketTests.java
index 9f11a4b..73dbd38 100644
--- a/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketTests.java
+++ b/tests/unit/java/com/android/server/connectivity/mdns/MdnsSocketTests.java
@@ -53,7 +53,7 @@
private SocketAddress socketIPv4Address;
private SocketAddress socketIPv6Address;
- private byte[] data = new byte[25];
+ private final byte[] data = new byte[25];
private final DatagramPacket datagramPacket = new DatagramPacket(data, data.length);
private NetworkInterface networkInterface;
@@ -74,14 +74,8 @@
}
@Test
- public void testMdnsSocket() throws IOException {
- mdnsSocket =
- new MdnsSocket(mockMulticastNetworkInterfaceProvider, MdnsConstants.MDNS_PORT) {
- @Override
- MulticastSocket createMulticastSocket(int port) throws IOException {
- return mockMulticastSocket;
- }
- };
+ public void mdnsSocket_basicFunctionality() throws IOException {
+ mdnsSocket = new MdnsSocket(mockMulticastNetworkInterfaceProvider, mockMulticastSocket);
mdnsSocket.send(datagramPacket);
verify(mockMulticastSocket).setNetworkInterface(networkInterface);
verify(mockMulticastSocket).send(datagramPacket);
@@ -100,20 +94,14 @@
}
@Test
- public void testIPv6OnlyNetwork_IPv6Enabled() throws IOException {
+ public void ipv6OnlyNetwork_ipv6Enabled() throws IOException {
// Have mockMulticastNetworkInterfaceProvider send back an IPv6Only networkInterfaceWrapper
networkInterface = createEmptyNetworkInterface();
when(mockNetworkInterfaceWrapper.getNetworkInterface()).thenReturn(networkInterface);
when(mockMulticastNetworkInterfaceProvider.getMulticastNetworkInterfaces())
.thenReturn(Collections.singletonList(mockNetworkInterfaceWrapper));
- mdnsSocket =
- new MdnsSocket(mockMulticastNetworkInterfaceProvider, MdnsConstants.MDNS_PORT) {
- @Override
- MulticastSocket createMulticastSocket(int port) throws IOException {
- return mockMulticastSocket;
- }
- };
+ mdnsSocket = new MdnsSocket(mockMulticastNetworkInterfaceProvider, mockMulticastSocket);
when(mockMulticastNetworkInterfaceProvider.isOnIpV6OnlyNetwork(
Collections.singletonList(mockNetworkInterfaceWrapper)))
@@ -130,20 +118,14 @@
}
@Test
- public void testIPv6OnlyNetwork_IPv6Toggle() throws IOException {
+ public void ipv6OnlyNetwork_ipv6Toggle() throws IOException {
// Have mockMulticastNetworkInterfaceProvider send back a networkInterfaceWrapper
networkInterface = createEmptyNetworkInterface();
when(mockNetworkInterfaceWrapper.getNetworkInterface()).thenReturn(networkInterface);
when(mockMulticastNetworkInterfaceProvider.getMulticastNetworkInterfaces())
.thenReturn(Collections.singletonList(mockNetworkInterfaceWrapper));
- mdnsSocket =
- new MdnsSocket(mockMulticastNetworkInterfaceProvider, MdnsConstants.MDNS_PORT) {
- @Override
- MulticastSocket createMulticastSocket(int port) throws IOException {
- return mockMulticastSocket;
- }
- };
+ mdnsSocket = new MdnsSocket(mockMulticastNetworkInterfaceProvider, mockMulticastSocket);
when(mockMulticastNetworkInterfaceProvider.isOnIpV6OnlyNetwork(
Collections.singletonList(mockNetworkInterfaceWrapper)))
diff --git a/tools/gn2bp/Android.bp.swp b/tools/gn2bp/Android.bp.swp
index e4e967c..62afa61 100644
--- a/tools/gn2bp/Android.bp.swp
+++ b/tools/gn2bp/Android.bp.swp
@@ -117,63 +117,6 @@
// GN: //base/allocator/partition_allocator:partition_alloc
cc_library_static {
name: "cronet_aml_base_allocator_partition_allocator_partition_alloc",
- srcs: [
- ":cronet_aml_third_party_android_ndk_cpu_features",
- "base/allocator/partition_allocator/address_pool_manager.cc",
- "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
- "base/allocator/partition_allocator/address_space_randomization.cc",
- "base/allocator/partition_allocator/allocation_guard.cc",
- "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
- "base/allocator/partition_allocator/gwp_asan_support.cc",
- "base/allocator/partition_allocator/memory_reclaimer.cc",
- "base/allocator/partition_allocator/oom.cc",
- "base/allocator/partition_allocator/oom_callback.cc",
- "base/allocator/partition_allocator/page_allocator.cc",
- "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
- "base/allocator/partition_allocator/partition_address_space.cc",
- "base/allocator/partition_allocator/partition_alloc.cc",
- "base/allocator/partition_allocator/partition_alloc_base/check.cc",
- "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
- "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
- "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
- "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
- "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
- "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
- "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
- "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
- "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
- "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
- "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
- "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
- "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
- "base/allocator/partition_allocator/partition_alloc_hooks.cc",
- "base/allocator/partition_allocator/partition_bucket.cc",
- "base/allocator/partition_allocator/partition_oom.cc",
- "base/allocator/partition_allocator/partition_page.cc",
- "base/allocator/partition_allocator/partition_root.cc",
- "base/allocator/partition_allocator/partition_stats.cc",
- "base/allocator/partition_allocator/random.cc",
- "base/allocator/partition_allocator/reservation_offset_table.cc",
- "base/allocator/partition_allocator/spinning_mutex.cc",
- "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
- "base/allocator/partition_allocator/starscan/pcscan.cc",
- "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
- "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
- "base/allocator/partition_allocator/starscan/snapshot.cc",
- "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
- "base/allocator/partition_allocator/starscan/stack/stack.cc",
- "base/allocator/partition_allocator/starscan/stats_collector.cc",
- "base/allocator/partition_allocator/starscan/write_protector.cc",
- "base/allocator/partition_allocator/tagging.cc",
- "base/allocator/partition_allocator/thread_cache.cc",
- ],
generated_headers: [
"cronet_aml_base_allocator_partition_allocator_chromecast_buildflags",
"cronet_aml_base_allocator_partition_allocator_chromeos_buildflags",
@@ -219,6 +162,126 @@
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
cpp_std: "c++20",
+ arch: {
+ x86: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ "base/allocator/partition_allocator/address_pool_manager.cc",
+ "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
+ "base/allocator/partition_allocator/address_space_randomization.cc",
+ "base/allocator/partition_allocator/allocation_guard.cc",
+ "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
+ "base/allocator/partition_allocator/gwp_asan_support.cc",
+ "base/allocator/partition_allocator/memory_reclaimer.cc",
+ "base/allocator/partition_allocator/oom.cc",
+ "base/allocator/partition_allocator/oom_callback.cc",
+ "base/allocator/partition_allocator/page_allocator.cc",
+ "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
+ "base/allocator/partition_allocator/partition_address_space.cc",
+ "base/allocator/partition_allocator/partition_alloc.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/check.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
+ "base/allocator/partition_allocator/partition_alloc_hooks.cc",
+ "base/allocator/partition_allocator/partition_bucket.cc",
+ "base/allocator/partition_allocator/partition_oom.cc",
+ "base/allocator/partition_allocator/partition_page.cc",
+ "base/allocator/partition_allocator/partition_root.cc",
+ "base/allocator/partition_allocator/partition_stats.cc",
+ "base/allocator/partition_allocator/random.cc",
+ "base/allocator/partition_allocator/reservation_offset_table.cc",
+ "base/allocator/partition_allocator/spinning_mutex.cc",
+ "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
+ "base/allocator/partition_allocator/starscan/pcscan.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
+ "base/allocator/partition_allocator/starscan/snapshot.cc",
+ "base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc",
+ "base/allocator/partition_allocator/starscan/stack/stack.cc",
+ "base/allocator/partition_allocator/starscan/stats_collector.cc",
+ "base/allocator/partition_allocator/starscan/write_protector.cc",
+ "base/allocator/partition_allocator/tagging.cc",
+ "base/allocator/partition_allocator/thread_cache.cc",
+ ],
+ },
+ x86_64: {
+ srcs: [
+ ":cronet_aml_third_party_android_ndk_cpu_features",
+ "base/allocator/partition_allocator/address_pool_manager.cc",
+ "base/allocator/partition_allocator/address_pool_manager_bitmap.cc",
+ "base/allocator/partition_allocator/address_space_randomization.cc",
+ "base/allocator/partition_allocator/allocation_guard.cc",
+ "base/allocator/partition_allocator/dangling_raw_ptr_checks.cc",
+ "base/allocator/partition_allocator/gwp_asan_support.cc",
+ "base/allocator/partition_allocator/memory_reclaimer.cc",
+ "base/allocator/partition_allocator/oom.cc",
+ "base/allocator/partition_allocator/oom_callback.cc",
+ "base/allocator/partition_allocator/page_allocator.cc",
+ "base/allocator/partition_allocator/page_allocator_internals_posix.cc",
+ "base/allocator/partition_allocator/partition_address_space.cc",
+ "base/allocator/partition_allocator/partition_alloc.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/check.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/cpu.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/debug/alias.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_path.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/files/file_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/logging.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/memory/ref_counted.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/native_library_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/pkey.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/posix/safe_strerror.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/rand_util_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/strings/stringprintf.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/threading/platform_thread_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_android.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_conversion_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_now_posix.cc",
+ "base/allocator/partition_allocator/partition_alloc_base/time/time_override.cc",
+ "base/allocator/partition_allocator/partition_alloc_hooks.cc",
+ "base/allocator/partition_allocator/partition_bucket.cc",
+ "base/allocator/partition_allocator/partition_oom.cc",
+ "base/allocator/partition_allocator/partition_page.cc",
+ "base/allocator/partition_allocator/partition_root.cc",
+ "base/allocator/partition_allocator/partition_stats.cc",
+ "base/allocator/partition_allocator/random.cc",
+ "base/allocator/partition_allocator/reservation_offset_table.cc",
+ "base/allocator/partition_allocator/spinning_mutex.cc",
+ "base/allocator/partition_allocator/starscan/metadata_allocator.cc",
+ "base/allocator/partition_allocator/starscan/pcscan.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_internal.cc",
+ "base/allocator/partition_allocator/starscan/pcscan_scheduling.cc",
+ "base/allocator/partition_allocator/starscan/snapshot.cc",
+ "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc",
+ "base/allocator/partition_allocator/starscan/stack/stack.cc",
+ "base/allocator/partition_allocator/starscan/stats_collector.cc",
+ "base/allocator/partition_allocator/starscan/write_protector.cc",
+ "base/allocator/partition_allocator/tagging.cc",
+ "base/allocator/partition_allocator/thread_cache.cc",
+ ],
+ },
+ },
}
// GN: //base/allocator/partition_allocator:partition_alloc_buildflags
@@ -1635,6 +1698,131 @@
cpp_std: "c++20",
}
+// GN: //base/third_party/symbolize:symbolize
+cc_library_static {
+ name: "cronet_aml_base_third_party_symbolize_symbolize",
+ srcs: [
+ "base/third_party/symbolize/demangle.cc",
+ "base/third_party/symbolize/symbolize.cc",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DGLOG_EXPORT=",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
+ "-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+ ],
+ cpp_std: "c++20",
+}
+
+// GN: //base/third_party/xdg_mime:xdg_mime
+cc_library_static {
+ name: "cronet_aml_base_third_party_xdg_mime_xdg_mime",
+ srcs: [
+ "base/third_party/xdg_mime/xdgmime.c",
+ "base/third_party/xdg_mime/xdgmimealias.c",
+ "base/third_party/xdg_mime/xdgmimecache.c",
+ "base/third_party/xdg_mime/xdgmimeglob.c",
+ "base/third_party/xdg_mime/xdgmimeicon.c",
+ "base/third_party/xdg_mime/xdgmimeint.c",
+ "base/third_party/xdg_mime/xdgmimemagic.c",
+ "base/third_party/xdg_mime/xdgmimeparent.c",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
+ "-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+ ],
+ cpp_std: "c++20",
+}
+
+// GN: //base/third_party/xdg_user_dirs:xdg_user_dirs
+cc_library_static {
+ name: "cronet_aml_base_third_party_xdg_user_dirs_xdg_user_dirs",
+ srcs: [
+ "base/third_party/xdg_user_dirs/xdg_user_dir_lookup.cc",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
+ "-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
+ "-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D__STDC_CONSTANT_MACROS",
+ "-D__STDC_FORMAT_MACROS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
+ ],
+ cpp_std: "c++20",
+}
+
// GN: //base:tracing_buildflags
genrule {
name: "cronet_aml_base_tracing_buildflags",
@@ -1743,11 +1931,595 @@
// GN: //buildtools/third_party/libc++:libc++
filegroup {
name: "cronet_aml_buildtools_third_party_libc___libc__",
+ srcs: [
+ "buildtools/third_party/libc++/trunk/src/algorithm.cpp",
+ "buildtools/third_party/libc++/trunk/src/any.cpp",
+ "buildtools/third_party/libc++/trunk/src/atomic.cpp",
+ "buildtools/third_party/libc++/trunk/src/barrier.cpp",
+ "buildtools/third_party/libc++/trunk/src/bind.cpp",
+ "buildtools/third_party/libc++/trunk/src/charconv.cpp",
+ "buildtools/third_party/libc++/trunk/src/chrono.cpp",
+ "buildtools/third_party/libc++/trunk/src/condition_variable.cpp",
+ "buildtools/third_party/libc++/trunk/src/condition_variable_destructor.cpp",
+ "buildtools/third_party/libc++/trunk/src/exception.cpp",
+ "buildtools/third_party/libc++/trunk/src/format.cpp",
+ "buildtools/third_party/libc++/trunk/src/functional.cpp",
+ "buildtools/third_party/libc++/trunk/src/future.cpp",
+ "buildtools/third_party/libc++/trunk/src/hash.cpp",
+ "buildtools/third_party/libc++/trunk/src/ios.cpp",
+ "buildtools/third_party/libc++/trunk/src/ios.instantiations.cpp",
+ "buildtools/third_party/libc++/trunk/src/iostream.cpp",
+ "buildtools/third_party/libc++/trunk/src/legacy_pointer_safety.cpp",
+ "buildtools/third_party/libc++/trunk/src/locale.cpp",
+ "buildtools/third_party/libc++/trunk/src/memory.cpp",
+ "buildtools/third_party/libc++/trunk/src/mutex.cpp",
+ "buildtools/third_party/libc++/trunk/src/mutex_destructor.cpp",
+ "buildtools/third_party/libc++/trunk/src/new.cpp",
+ "buildtools/third_party/libc++/trunk/src/optional.cpp",
+ "buildtools/third_party/libc++/trunk/src/random.cpp",
+ "buildtools/third_party/libc++/trunk/src/random_shuffle.cpp",
+ "buildtools/third_party/libc++/trunk/src/regex.cpp",
+ "buildtools/third_party/libc++/trunk/src/ryu/d2fixed.cpp",
+ "buildtools/third_party/libc++/trunk/src/ryu/d2s.cpp",
+ "buildtools/third_party/libc++/trunk/src/ryu/f2s.cpp",
+ "buildtools/third_party/libc++/trunk/src/shared_mutex.cpp",
+ "buildtools/third_party/libc++/trunk/src/stdexcept.cpp",
+ "buildtools/third_party/libc++/trunk/src/string.cpp",
+ "buildtools/third_party/libc++/trunk/src/strstream.cpp",
+ "buildtools/third_party/libc++/trunk/src/system_error.cpp",
+ "buildtools/third_party/libc++/trunk/src/thread.cpp",
+ "buildtools/third_party/libc++/trunk/src/typeinfo.cpp",
+ "buildtools/third_party/libc++/trunk/src/utility.cpp",
+ "buildtools/third_party/libc++/trunk/src/valarray.cpp",
+ "buildtools/third_party/libc++/trunk/src/variant.cpp",
+ "buildtools/third_party/libc++/trunk/src/vector.cpp",
+ "buildtools/third_party/libc++/trunk/src/verbose_abort.cpp",
+ ],
}
// GN: //buildtools/third_party/libc++abi:libc++abi
filegroup {
name: "cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+ srcs: [
+ "buildtools/third_party/libc++abi/cxa_demangle_stub.cc",
+ "buildtools/third_party/libc++abi/trunk/src/abort_message.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_aux_runtime.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_default_handlers.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_exception.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_exception_storage.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_guard.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_handlers.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_personality.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_thread_atexit.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_vector.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/cxa_virtual.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/fallback_malloc.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/private_typeinfo.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/stdlib_exception.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/stdlib_stdexcept.cpp",
+ "buildtools/third_party/libc++abi/trunk/src/stdlib_typeinfo.cpp",
+ ],
+}
+
+// GN: //buildtools/third_party/libunwind:libunwind
+filegroup {
+ name: "cronet_aml_buildtools_third_party_libunwind_libunwind",
+ srcs: [
+ "buildtools/third_party/libunwind/trunk/src/Unwind-EHABI.cpp",
+ "buildtools/third_party/libunwind/trunk/src/Unwind-sjlj.c",
+ "buildtools/third_party/libunwind/trunk/src/UnwindLevel1-gcc-ext.c",
+ "buildtools/third_party/libunwind/trunk/src/UnwindLevel1.c",
+ "buildtools/third_party/libunwind/trunk/src/UnwindRegistersRestore.S",
+ "buildtools/third_party/libunwind/trunk/src/UnwindRegistersSave.S",
+ "buildtools/third_party/libunwind/trunk/src/libunwind.cpp",
+ ],
+}
+
+// GN: //components/cronet/android:buildflags
+genrule {
+ name: "cronet_aml_components_cronet_android_buildflags",
+ cmd: "echo '--flags INTEGRATED_MODE=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//components/cronet/android:buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "components/cronet/android/buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+}
+
+// GN: //components/cronet/android:cronet
+cc_library_shared {
+ name: "cronet_aml_components_cronet_android_cronet",
+ srcs: [
+ ":cronet_aml_buildtools_third_party_libc___libc__",
+ ":cronet_aml_buildtools_third_party_libc__abi_libc__abi",
+ ":cronet_aml_buildtools_third_party_libunwind_libunwind",
+ ":cronet_aml_components_cronet_android_cronet_static",
+ ":cronet_aml_components_cronet_cronet_common",
+ ":cronet_aml_components_cronet_cronet_version_header",
+ ":cronet_aml_components_cronet_metrics_util",
+ ":cronet_aml_components_cronet_native_cronet_native_headers",
+ ":cronet_aml_components_cronet_native_cronet_native_impl",
+ ":cronet_aml_components_grpc_support_grpc_support",
+ ":cronet_aml_components_grpc_support_headers",
+ ":cronet_aml_components_metrics_library_support",
+ ":cronet_aml_third_party_metrics_proto_metrics_proto_gen",
+ "components/cronet/android/cronet_jni.cc",
+ ],
+ shared_libs: [
+ "libandroid",
+ "liblog",
+ "libprotobuf-cpp-lite",
+ ],
+ static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
+ "cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_base_third_party_symbolize_symbolize",
+ "cronet_aml_base_third_party_xdg_mime_xdg_mime",
+ "cronet_aml_base_third_party_xdg_user_dirs_xdg_user_dirs",
+ "cronet_aml_components_prefs_prefs",
+ "cronet_aml_crypto_crypto",
+ "cronet_aml_net_net",
+ "cronet_aml_net_preload_decoder",
+ "cronet_aml_net_third_party_quiche_quiche",
+ "cronet_aml_net_uri_template",
+ "cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_brotli_common",
+ "cronet_aml_third_party_brotli_dec",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "cronet_aml_third_party_zlib_zlib",
+ "cronet_aml_url_url",
+ ],
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags",
+ "cronet_aml_base_logging_buildflags",
+ "cronet_aml_build_chromeos_buildflags",
+ "cronet_aml_components_cronet_android_buildflags",
+ "cronet_aml_components_cronet_android_cronet_jni_headers",
+ "cronet_aml_components_cronet_android_cronet_jni_registration",
+ "cronet_aml_components_cronet_cronet_buildflags",
+ "cronet_aml_components_cronet_cronet_version_header_action",
+ "cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
+ "cronet_aml_url_buildflags",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
+ "-DGOOGLE_PROTOBUF_NO_RTTI",
+ "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+ "-DHAVE_PTHREAD",
+ "-DHAVE_SYS_UIO_H",
+ "-DLIBCXXABI_SILENT_TERMINATE",
+ "-DLIBCXX_BUILDING_LIBCXXABI",
+ "-D_DEBUG",
+ "-D_GNU_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_BUILDING_LIBRARY",
+ "-D_LIBCPP_CONSTINIT=constinit",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBUNWIND_IS_NATIVE_ONLY",
+ "-D__STDC_CONSTANT_MACROS",
+ "-D__STDC_FORMAT_MACROS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++/trunk/src/",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "buildtools/third_party/libunwind/trunk/include/",
+ "components/cronet/native/generated/",
+ "components/cronet/native/include/",
+ "components/grpc_support/include/",
+ "net/third_party/quiche/overrides/",
+ "net/third_party/quiche/src/",
+ "net/third_party/quiche/src/quiche/common/platform/default/",
+ "third_party/abseil-cpp/",
+ "third_party/boringssl/src/include/",
+ "third_party/zlib/",
+ "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+ ],
+ header_libs: [
+ "jni_headers",
+ ],
+ cpp_std: "c++20",
+ linker_scripts: [
+ "base/android/library_loader/anchor_functions.lds",
+ ],
+ cppflags: [
+ "-fexceptions",
+ ],
+ rtti: true,
+}
+
+// GN: //components/cronet/android:cronet_jni_headers
+genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_headers",
+ srcs: [
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java",
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.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",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ " " +
+ " " +
+ "--output_dir " +
+ "$(genDir)/components/cronet/android/cronet_jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "CronetBidirectionalStream_jni.h " +
+ "--output_name " +
+ "CronetLibraryLoader_jni.h " +
+ "--output_name " +
+ "CronetUploadDataStream_jni.h " +
+ "--output_name " +
+ "CronetUrlRequest_jni.h " +
+ "--output_name " +
+ "CronetUrlRequestContext_jni.h " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalStream.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStream.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java) " +
+ "--input_file " +
+ "$(location components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestContext.java)",
+ out: [
+ "components/cronet/android/cronet_jni_headers/CronetBidirectionalStream_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetLibraryLoader_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUploadDataStream_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUrlRequestContext_jni.h",
+ "components/cronet/android/cronet_jni_headers/CronetUrlRequest_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_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
+genrule {
+ name: "cronet_aml_components_cronet_android_cronet_jni_registration",
+ srcs: [
+ "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/NativeLibraryLoadedStatus.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",
+ "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/java/src/org/chromium/net/impl/CronetUrlRequest.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_static
+filegroup {
+ name: "cronet_aml_components_cronet_android_cronet_static",
+ srcs: [
+ "components/cronet/android/cronet_bidirectional_stream_adapter.cc",
+ "components/cronet/android/cronet_context_adapter.cc",
+ "components/cronet/android/cronet_library_loader.cc",
+ "components/cronet/android/cronet_upload_data_stream_adapter.cc",
+ "components/cronet/android/cronet_url_request_adapter.cc",
+ "components/cronet/android/io_buffer_with_byte_buffer.cc",
+ "components/cronet/android/url_request_error.cc",
+ ],
+}
+
+// GN: //components/cronet:cronet_buildflags
+genrule {
+ name: "cronet_aml_components_cronet_cronet_buildflags",
+ cmd: "echo '--flags DISABLE_HISTOGRAM_SUPPORT=\"false\"' | " +
+ "$(location build/write_buildflag_header.py) --output " +
+ "$(out) " +
+ "--rulename " +
+ "//components/cronet:cronet_buildflags " +
+ "--gen-dir " +
+ ". " +
+ "--definitions " +
+ "/dev/stdin",
+ out: [
+ "components/cronet/cronet_buildflags.h",
+ ],
+ tool_files: [
+ "build/write_buildflag_header.py",
+ ],
+}
+
+// GN: //components/cronet:cronet_common
+filegroup {
+ name: "cronet_aml_components_cronet_cronet_common",
+ srcs: [
+ "components/cronet/cronet_context.cc",
+ "components/cronet/cronet_prefs_manager.cc",
+ "components/cronet/cronet_upload_data_stream.cc",
+ "components/cronet/cronet_url_request.cc",
+ "components/cronet/host_cache_persistence_manager.cc",
+ "components/cronet/stale_host_resolver.cc",
+ "components/cronet/url_request_context_config.cc",
+ ],
+}
+
+// GN: //components/cronet:cronet_version_header
+filegroup {
+ name: "cronet_aml_components_cronet_cronet_version_header",
+}
+
+// GN: //components/cronet:cronet_version_header_action
+genrule {
+ name: "cronet_aml_components_cronet_cronet_version_header_action",
+ cmd: "$(location build/util/version.py) -f " +
+ "$(location chrome/VERSION) " +
+ "-e " +
+ "VERSION_FULL='\"%s.%s.%s.%s\" % (MAJOR,MINOR,BUILD,PATCH)' " +
+ " " +
+ "-o " +
+ "$(out) " +
+ "$(location components/cronet/version.h.in)",
+ out: [
+ "components/cronet/version.h",
+ ],
+ tool_files: [
+ "build/util/LASTCHANGE",
+ "build/util/android_chrome_version.py",
+ "build/util/version.py",
+ "chrome/VERSION",
+ "components/cronet/version.h.in",
+ ],
+}
+
+// GN: //components/cronet:metrics_util
+filegroup {
+ name: "cronet_aml_components_cronet_metrics_util",
+ srcs: [
+ "components/cronet/metrics_util.cc",
+ ],
+}
+
+// GN: //components/cronet/native:cronet_native_headers
+filegroup {
+ name: "cronet_aml_components_cronet_native_cronet_native_headers",
+}
+
+// GN: //components/cronet/native:cronet_native_impl
+filegroup {
+ name: "cronet_aml_components_cronet_native_cronet_native_impl",
+ srcs: [
+ "components/cronet/native/buffer.cc",
+ "components/cronet/native/engine.cc",
+ "components/cronet/native/generated/cronet.idl_impl_interface.cc",
+ "components/cronet/native/generated/cronet.idl_impl_struct.cc",
+ "components/cronet/native/io_buffer_with_cronet_buffer.cc",
+ "components/cronet/native/native_metrics_util.cc",
+ "components/cronet/native/runnables.cc",
+ "components/cronet/native/upload_data_sink.cc",
+ "components/cronet/native/url_request.cc",
+ ],
+}
+
+// GN: //components/grpc_support:grpc_support
+filegroup {
+ name: "cronet_aml_components_grpc_support_grpc_support",
+ srcs: [
+ "components/grpc_support/bidirectional_stream.cc",
+ "components/grpc_support/bidirectional_stream_c.cc",
+ ],
+}
+
+// GN: //components/grpc_support:headers
+filegroup {
+ name: "cronet_aml_components_grpc_support_headers",
+}
+
+// GN: //components/metrics:library_support
+filegroup {
+ name: "cronet_aml_components_metrics_library_support",
+ srcs: [
+ "components/metrics/histogram_encoder.cc",
+ "components/metrics/library_support/histogram_manager.cc",
+ ],
+}
+
+// GN: //components/prefs/android:jni_headers
+genrule {
+ name: "cronet_aml_components_prefs_android_jni_headers",
+ srcs: [
+ "components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java",
+ ],
+ cmd: "$(location base/android/jni_generator/jni_generator.py) --ptr_type " +
+ "long " +
+ " " +
+ " " +
+ "--output_dir " +
+ "$(genDir)/components/prefs/android/jni_headers " +
+ "--includes " +
+ "base/android/jni_generator/jni_generator_helper.h " +
+ "--use_proxy_hash " +
+ "--output_name " +
+ "PrefService_jni.h " +
+ "--input_file " +
+ "$(location components/prefs/android/java/src/org/chromium/components/prefs/PrefService.java)",
+ out: [
+ "components/prefs/android/jni_headers/PrefService_jni.h",
+ ],
+ tool_files: [
+ "base/android/jni_generator/android_jar.classes",
+ "base/android/jni_generator/jni_generator.py",
+ "build/android/gyp/util/__init__.py",
+ "build/android/gyp/util/build_utils.py",
+ "build/gn_helpers.py",
+ ],
+}
+
+// GN: //components/prefs:prefs
+cc_library_static {
+ name: "cronet_aml_components_prefs_prefs",
+ srcs: [
+ "components/prefs/android/pref_service_android.cc",
+ "components/prefs/command_line_pref_store.cc",
+ "components/prefs/default_pref_store.cc",
+ "components/prefs/in_memory_pref_store.cc",
+ "components/prefs/json_pref_store.cc",
+ "components/prefs/overlay_user_pref_store.cc",
+ "components/prefs/persistent_pref_store.cc",
+ "components/prefs/pref_change_registrar.cc",
+ "components/prefs/pref_member.cc",
+ "components/prefs/pref_notifier_impl.cc",
+ "components/prefs/pref_registry.cc",
+ "components/prefs/pref_registry_simple.cc",
+ "components/prefs/pref_service.cc",
+ "components/prefs/pref_service_factory.cc",
+ "components/prefs/pref_store.cc",
+ "components/prefs/pref_value_map.cc",
+ "components/prefs/pref_value_store.cc",
+ "components/prefs/scoped_user_pref_update.cc",
+ "components/prefs/segregated_pref_store.cc",
+ "components/prefs/value_map_pref_store.cc",
+ "components/prefs/writeable_pref_store.cc",
+ ],
+ shared_libs: [
+ "libandroid",
+ "liblog",
+ ],
+ static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
+ "cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ ],
+ generated_headers: [
+ "cronet_aml_base_debugging_buildflags",
+ "cronet_aml_base_logging_buildflags",
+ "cronet_aml_build_chromeos_buildflags",
+ "cronet_aml_components_prefs_android_jni_headers",
+ ],
+ export_generated_headers: [
+ "cronet_aml_base_debugging_buildflags",
+ "cronet_aml_base_logging_buildflags",
+ "cronet_aml_build_chromeos_buildflags",
+ "cronet_aml_components_prefs_android_jni_headers",
+ ],
+ defaults: [
+ "cronet_aml_defaults",
+ ],
+ cflags: [
+ "-DANDROID",
+ "-DANDROID_NDK_VERSION_ROLL=r23_1",
+ "-DCOMPONENTS_PREFS_IMPLEMENTATION",
+ "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
+ "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DDCHECK_ALWAYS_ON=1",
+ "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
+ "-DHAVE_SYS_UIO_H",
+ "-D_DEBUG",
+ "-D_GNU_SOURCE",
+ "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
+ "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
+ "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
+ "-D__STDC_CONSTANT_MACROS",
+ "-D__STDC_FORMAT_MACROS",
+ ],
+ local_include_dirs: [
+ "./",
+ "buildtools/third_party/libc++/",
+ "buildtools/third_party/libc++/trunk/include",
+ "buildtools/third_party/libc++abi/trunk/include",
+ "third_party/abseil-cpp/",
+ "third_party/boringssl/src/include/",
+ "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+ ],
+ header_libs: [
+ "jni_headers",
+ ],
+ cpp_std: "c++20",
}
// GN: //crypto:buildflags
@@ -1799,9 +2571,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
"cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
],
generated_headers: [
"cronet_aml_crypto_buildflags",
@@ -1846,12 +2625,17 @@
cc_defaults {
name: "cronet_aml_defaults",
cflags: [
+ "-DGOOGLE_PROTOBUF_NO_RTTI",
"-O2",
+ "-Wno-ambiguous-reversed-operator",
+ "-Wno-deprecated-non-prototype",
"-Wno-error=return-type",
+ "-Wno-macro-redefined",
"-Wno-missing-field-initializers",
"-Wno-non-virtual-dtor",
"-Wno-sign-compare",
"-Wno-sign-promo",
+ "-Wno-unreachable-code-loop-increment",
"-Wno-unused-parameter",
"-fvisibility=hidden",
],
@@ -1971,7 +2755,7 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/cert --cpp_out=lite=true:$(genDir)/external/chromium_org/net/cert/ $(in)",
out: [
"external/chromium_org/net/cert/root_store.pb.cc",
],
@@ -1986,12 +2770,13 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/cert --cpp_out=lite=true:$(genDir)/external/chromium_org/net/cert/ $(in)",
out: [
"external/chromium_org/net/cert/root_store.pb.h",
],
export_include_dirs: [
".",
+ "net/cert",
"protos",
],
}
@@ -2140,7 +2925,7 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/base --cpp_out=lite=true:$(genDir)/external/chromium_org/net/base/ $(in)",
out: [
"external/chromium_org/net/base/isolation_info.pb.cc",
],
@@ -2155,12 +2940,13 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/base --cpp_out=lite=true:$(genDir)/external/chromium_org/net/base/ $(in)",
out: [
"external/chromium_org/net/base/isolation_info.pb.h",
],
export_include_dirs: [
".",
+ "net/base",
"protos",
],
}
@@ -2182,7 +2968,6 @@
":cronet_aml_net_net_export_header",
":cronet_aml_net_net_nqe_proto_gen",
":cronet_aml_net_net_public_deps",
- ":cronet_aml_net_net_resources",
":cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen",
":cronet_aml_net_traffic_annotation_traffic_annotation",
"net/android/android_http_util.cc",
@@ -2675,15 +3460,25 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_base_third_party_symbolize_symbolize",
+ "cronet_aml_base_third_party_xdg_mime_xdg_mime",
+ "cronet_aml_base_third_party_xdg_user_dirs_xdg_user_dirs",
"cronet_aml_crypto_crypto",
"cronet_aml_net_preload_decoder",
"cronet_aml_net_third_party_quiche_quiche",
"cronet_aml_net_uri_template",
"cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_brotli_common",
"cronet_aml_third_party_brotli_dec",
- "cronet_aml_third_party_protobuf_protobuf_lite",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"cronet_aml_third_party_zlib_zlib",
"cronet_aml_url_url",
],
@@ -2692,14 +3487,13 @@
"cronet_aml_base_logging_buildflags",
"cronet_aml_build_branding_buildflags",
"cronet_aml_build_chromeos_buildflags",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains",
"cronet_aml_net_buildflags",
"cronet_aml_net_ios_cronet_buildflags",
"cronet_aml_net_isolation_info_proto_gen_headers",
"cronet_aml_net_net_jni_headers",
"cronet_aml_net_net_nqe_proto_gen_headers",
"cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
- "cronet_aml_tools_grit_grit_sources",
- "cronet_aml_tools_gritsettings_default_resource_ids",
"cronet_aml_url_buildflags",
],
export_generated_headers: [
@@ -2707,16 +3501,19 @@
"cronet_aml_base_logging_buildflags",
"cronet_aml_build_branding_buildflags",
"cronet_aml_build_chromeos_buildflags",
+ "cronet_aml_net_base_registry_controlled_domains_registry_controlled_domains",
"cronet_aml_net_buildflags",
"cronet_aml_net_ios_cronet_buildflags",
"cronet_aml_net_isolation_info_proto_gen_headers",
"cronet_aml_net_net_jni_headers",
"cronet_aml_net_net_nqe_proto_gen_headers",
"cronet_aml_net_third_party_quiche_net_quic_test_tools_proto_gen_headers",
- "cronet_aml_tools_grit_grit_sources",
- "cronet_aml_tools_gritsettings_default_resource_ids",
"cronet_aml_url_buildflags",
],
+ export_static_lib_headers: [
+ "cronet_aml_crypto_crypto",
+ "cronet_aml_net_third_party_quiche_quiche",
+ ],
defaults: [
"cronet_aml_defaults",
],
@@ -2754,7 +3551,6 @@
"third_party/abseil-cpp/",
"third_party/boringssl/src/include/",
"third_party/brotli/include/",
- "third_party/protobuf/src/",
"third_party/zlib/",
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
@@ -2762,6 +3558,7 @@
"jni_headers",
],
cpp_std: "c++20",
+ rtti: true,
}
// GN: //net:net_deps
@@ -2886,7 +3683,7 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/chromium_org/net/nqe/proto/ $(in)",
out: [
"external/chromium_org/net/nqe/proto/network_id_proto.pb.cc",
],
@@ -2901,12 +3698,13 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/nqe/proto --cpp_out=lite=true:$(genDir)/external/chromium_org/net/nqe/proto/ $(in)",
out: [
"external/chromium_org/net/nqe/proto/network_id_proto.pb.h",
],
export_include_dirs: [
".",
+ "net/nqe/proto",
"protos",
],
}
@@ -2916,93 +3714,6 @@
name: "cronet_aml_net_net_public_deps",
}
-// GN: //net:net_resources
-filegroup {
- name: "cronet_aml_net_net_resources",
-}
-
-// GN: //net:net_resources_grit
-genrule {
- name: "cronet_aml_net_net_resources_grit",
- cmd: "$(location tools/grit/grit.py) -i " +
- "$(location net/base/net_resources.grd) " +
- "build " +
- "-o " +
- "$(genDir)/net " +
- "--depdir " +
- ". " +
- " " +
- " " +
- "--write-only-new " +
- "1 " +
- "--depend-on-stamp " +
- "-D " +
- "DEVTOOLS_GRD_PATH " +
- "gen/third_party/devtools-frontend/src/front_end/devtools_resources " +
- "-D " +
- "SHARED_INTERMEDIATE_DIR " +
- "gen " +
- "-D " +
- "_google_chrome " +
- "false " +
- "-D " +
- "_google_chrome_for_testing " +
- "false " +
- "-D " +
- "chromeos_ash " +
- "false " +
- "-D " +
- "chromeos_lacros " +
- "false " +
- "-D " +
- "reven " +
- "false " +
- "-D " +
- "toolkit_views " +
- "false " +
- "-D " +
- "use_aura " +
- "false " +
- "-D " +
- "use_ozone " +
- "false " +
- "-D " +
- "use_titlecase " +
- "false " +
- "-E " +
- "root_gen_dir " +
- "gen " +
- "-E " +
- "root_src_dir " +
- "../../ " +
- "-E " +
- "CHROMIUM_BUILD " +
- "chromium " +
- "-E " +
- "ANDROID_JAVA_TAGGED_ONLY " +
- "true " +
- "-t " +
- "android " +
- "-f " +
- "gen/tools/gritsettings/default_resource_ids " +
- "--assert-file-list " +
- "obj/net/net_resources_expected_outputs.txt",
- out: [
- "net/grit/net_resources.h",
- "net/net_resources.pak",
- "net/net_resources.pak.info",
- "net/net_resources_grit.d.stamp",
- ],
- tool_files: [
- "net/base/net_resources.grd",
- "out/test/gen/tools/gritsettings/default_resource_ids",
- "out/test/obj/net/net_resources_expected_outputs.txt",
- "third_party/six/src/six.py",
- "tools/grit/**/*.py",
- "tools/grit/grit.py",
- ],
-}
-
// GN: //net:preload_decoder
cc_library_static {
name: "cronet_aml_net_preload_decoder",
@@ -3014,7 +3725,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
],
defaults: [
"cronet_aml_defaults",
@@ -3059,7 +3779,7 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/ $(in)",
out: [
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.cc",
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.cc",
@@ -3078,7 +3798,7 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/ $(in)",
out: [
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/cached_network_parameters.pb.h",
"external/chromium_org/net/third_party/quiche/src/quiche/quic/core/proto/crypto_server_config.pb.h",
@@ -3086,6 +3806,7 @@
],
export_include_dirs: [
".",
+ "net/third_party/quiche/src",
"protos",
],
}
@@ -3099,7 +3820,7 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
out: [
"external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.cc",
],
@@ -3114,12 +3835,13 @@
tools: [
"aprotoc",
],
- cmd: "mkdir -p $(genDir)/external/chromium_org/ && $(location aprotoc) --proto_path=external/chromium_org --cpp_out=lite=true:$(genDir)/external/chromium_org/ $(in)",
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools --cpp_out=lite=true:$(genDir)/external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/ $(in)",
out: [
"external/chromium_org/net/third_party/quiche/src/quiche/quic/test_tools/send_algorithm_test_result.pb.h",
],
export_include_dirs: [
".",
+ "net/third_party/quiche/src/quiche/quic/test_tools",
"protos",
],
}
@@ -3526,10 +4248,17 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
"cronet_aml_net_uri_template",
"cronet_aml_third_party_boringssl_boringssl",
- "cronet_aml_third_party_protobuf_protobuf_lite",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
"cronet_aml_third_party_zlib_zlib",
"cronet_aml_url_url",
],
@@ -3577,7 +4306,6 @@
"net/third_party/quiche/src/quiche/common/platform/default/",
"third_party/abseil-cpp/",
"third_party/boringssl/src/include/",
- "third_party/protobuf/src/",
"third_party/zlib/",
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
@@ -3597,9 +4325,21 @@
"libprotobuf-cpp-lite",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_base_third_party_symbolize_symbolize",
+ "cronet_aml_base_third_party_xdg_mime_xdg_mime",
+ "cronet_aml_base_third_party_xdg_user_dirs_xdg_user_dirs",
"cronet_aml_crypto_crypto",
"cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "cronet_aml_third_party_zlib_zlib",
],
generated_headers: [
"cronet_aml_net_cert_root_store_proto_full_gen_headers",
@@ -3645,10 +4385,13 @@
"buildtools/third_party/libc++abi/trunk/include",
"third_party/abseil-cpp/",
"third_party/boringssl/src/include/",
- "third_party/protobuf/src/",
"build/linux/debian_bullseye_amd64-sysroot/usr/include",
],
cpp_std: "c++20",
+ cppflags: [
+ "-fexceptions",
+ ],
+ rtti: true,
}
// GN: //net/traffic_annotation:traffic_annotation
@@ -3670,7 +4413,16 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
+ "cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
],
defaults: [
"cronet_aml_defaults",
@@ -4475,276 +5227,6 @@
// GN: //third_party/boringssl:boringssl
cc_library_static {
name: "cronet_aml_third_party_boringssl_boringssl",
- srcs: [
- ":cronet_aml_third_party_boringssl_boringssl_asm",
- ":cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
- "third_party/boringssl/err_data.c",
- "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
- "third_party/boringssl/src/crypto/asn1/a_bool.c",
- "third_party/boringssl/src/crypto/asn1/a_d2i_fp.c",
- "third_party/boringssl/src/crypto/asn1/a_dup.c",
- "third_party/boringssl/src/crypto/asn1/a_gentm.c",
- "third_party/boringssl/src/crypto/asn1/a_i2d_fp.c",
- "third_party/boringssl/src/crypto/asn1/a_int.c",
- "third_party/boringssl/src/crypto/asn1/a_mbstr.c",
- "third_party/boringssl/src/crypto/asn1/a_object.c",
- "third_party/boringssl/src/crypto/asn1/a_octet.c",
- "third_party/boringssl/src/crypto/asn1/a_print.c",
- "third_party/boringssl/src/crypto/asn1/a_strex.c",
- "third_party/boringssl/src/crypto/asn1/a_strnid.c",
- "third_party/boringssl/src/crypto/asn1/a_time.c",
- "third_party/boringssl/src/crypto/asn1/a_type.c",
- "third_party/boringssl/src/crypto/asn1/a_utctm.c",
- "third_party/boringssl/src/crypto/asn1/a_utf8.c",
- "third_party/boringssl/src/crypto/asn1/asn1_lib.c",
- "third_party/boringssl/src/crypto/asn1/asn1_par.c",
- "third_party/boringssl/src/crypto/asn1/asn_pack.c",
- "third_party/boringssl/src/crypto/asn1/f_int.c",
- "third_party/boringssl/src/crypto/asn1/f_string.c",
- "third_party/boringssl/src/crypto/asn1/posix_time.c",
- "third_party/boringssl/src/crypto/asn1/tasn_dec.c",
- "third_party/boringssl/src/crypto/asn1/tasn_enc.c",
- "third_party/boringssl/src/crypto/asn1/tasn_fre.c",
- "third_party/boringssl/src/crypto/asn1/tasn_new.c",
- "third_party/boringssl/src/crypto/asn1/tasn_typ.c",
- "third_party/boringssl/src/crypto/asn1/tasn_utl.c",
- "third_party/boringssl/src/crypto/base64/base64.c",
- "third_party/boringssl/src/crypto/bio/bio.c",
- "third_party/boringssl/src/crypto/bio/bio_mem.c",
- "third_party/boringssl/src/crypto/bio/connect.c",
- "third_party/boringssl/src/crypto/bio/fd.c",
- "third_party/boringssl/src/crypto/bio/file.c",
- "third_party/boringssl/src/crypto/bio/hexdump.c",
- "third_party/boringssl/src/crypto/bio/pair.c",
- "third_party/boringssl/src/crypto/bio/printf.c",
- "third_party/boringssl/src/crypto/bio/socket.c",
- "third_party/boringssl/src/crypto/bio/socket_helper.c",
- "third_party/boringssl/src/crypto/blake2/blake2.c",
- "third_party/boringssl/src/crypto/bn_extra/bn_asn1.c",
- "third_party/boringssl/src/crypto/bn_extra/convert.c",
- "third_party/boringssl/src/crypto/buf/buf.c",
- "third_party/boringssl/src/crypto/bytestring/asn1_compat.c",
- "third_party/boringssl/src/crypto/bytestring/ber.c",
- "third_party/boringssl/src/crypto/bytestring/cbb.c",
- "third_party/boringssl/src/crypto/bytestring/cbs.c",
- "third_party/boringssl/src/crypto/bytestring/unicode.c",
- "third_party/boringssl/src/crypto/chacha/chacha.c",
- "third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c",
- "third_party/boringssl/src/crypto/cipher_extra/derive_key.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_des.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_null.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_rc2.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_rc4.c",
- "third_party/boringssl/src/crypto/cipher_extra/e_tls.c",
- "third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c",
- "third_party/boringssl/src/crypto/conf/conf.c",
- "third_party/boringssl/src/crypto/cpu_aarch64_apple.c",
- "third_party/boringssl/src/crypto/cpu_aarch64_fuchsia.c",
- "third_party/boringssl/src/crypto/cpu_aarch64_linux.c",
- "third_party/boringssl/src/crypto/cpu_aarch64_win.c",
- "third_party/boringssl/src/crypto/cpu_arm.c",
- "third_party/boringssl/src/crypto/cpu_arm_linux.c",
- "third_party/boringssl/src/crypto/cpu_intel.c",
- "third_party/boringssl/src/crypto/cpu_ppc64le.c",
- "third_party/boringssl/src/crypto/crypto.c",
- "third_party/boringssl/src/crypto/curve25519/curve25519.c",
- "third_party/boringssl/src/crypto/curve25519/spake25519.c",
- "third_party/boringssl/src/crypto/des/des.c",
- "third_party/boringssl/src/crypto/dh_extra/dh_asn1.c",
- "third_party/boringssl/src/crypto/dh_extra/params.c",
- "third_party/boringssl/src/crypto/digest_extra/digest_extra.c",
- "third_party/boringssl/src/crypto/dsa/dsa.c",
- "third_party/boringssl/src/crypto/dsa/dsa_asn1.c",
- "third_party/boringssl/src/crypto/ec_extra/ec_asn1.c",
- "third_party/boringssl/src/crypto/ec_extra/ec_derive.c",
- "third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c",
- "third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c",
- "third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c",
- "third_party/boringssl/src/crypto/engine/engine.c",
- "third_party/boringssl/src/crypto/err/err.c",
- "third_party/boringssl/src/crypto/evp/evp.c",
- "third_party/boringssl/src/crypto/evp/evp_asn1.c",
- "third_party/boringssl/src/crypto/evp/evp_ctx.c",
- "third_party/boringssl/src/crypto/evp/p_dsa_asn1.c",
- "third_party/boringssl/src/crypto/evp/p_ec.c",
- "third_party/boringssl/src/crypto/evp/p_ec_asn1.c",
- "third_party/boringssl/src/crypto/evp/p_ed25519.c",
- "third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c",
- "third_party/boringssl/src/crypto/evp/p_hkdf.c",
- "third_party/boringssl/src/crypto/evp/p_rsa.c",
- "third_party/boringssl/src/crypto/evp/p_rsa_asn1.c",
- "third_party/boringssl/src/crypto/evp/p_x25519.c",
- "third_party/boringssl/src/crypto/evp/p_x25519_asn1.c",
- "third_party/boringssl/src/crypto/evp/pbkdf.c",
- "third_party/boringssl/src/crypto/evp/print.c",
- "third_party/boringssl/src/crypto/evp/scrypt.c",
- "third_party/boringssl/src/crypto/evp/sign.c",
- "third_party/boringssl/src/crypto/ex_data.c",
- "third_party/boringssl/src/crypto/fipsmodule/bcm.c",
- "third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c",
- "third_party/boringssl/src/crypto/hkdf/hkdf.c",
- "third_party/boringssl/src/crypto/hpke/hpke.c",
- "third_party/boringssl/src/crypto/hrss/hrss.c",
- "third_party/boringssl/src/crypto/lhash/lhash.c",
- "third_party/boringssl/src/crypto/mem.c",
- "third_party/boringssl/src/crypto/obj/obj.c",
- "third_party/boringssl/src/crypto/obj/obj_xref.c",
- "third_party/boringssl/src/crypto/pem/pem_all.c",
- "third_party/boringssl/src/crypto/pem/pem_info.c",
- "third_party/boringssl/src/crypto/pem/pem_lib.c",
- "third_party/boringssl/src/crypto/pem/pem_oth.c",
- "third_party/boringssl/src/crypto/pem/pem_pk8.c",
- "third_party/boringssl/src/crypto/pem/pem_pkey.c",
- "third_party/boringssl/src/crypto/pem/pem_x509.c",
- "third_party/boringssl/src/crypto/pem/pem_xaux.c",
- "third_party/boringssl/src/crypto/pkcs7/pkcs7.c",
- "third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c",
- "third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c",
- "third_party/boringssl/src/crypto/pkcs8/pkcs8.c",
- "third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c",
- "third_party/boringssl/src/crypto/poly1305/poly1305.c",
- "third_party/boringssl/src/crypto/poly1305/poly1305_arm.c",
- "third_party/boringssl/src/crypto/poly1305/poly1305_vec.c",
- "third_party/boringssl/src/crypto/pool/pool.c",
- "third_party/boringssl/src/crypto/rand_extra/deterministic.c",
- "third_party/boringssl/src/crypto/rand_extra/forkunsafe.c",
- "third_party/boringssl/src/crypto/rand_extra/fuchsia.c",
- "third_party/boringssl/src/crypto/rand_extra/passive.c",
- "third_party/boringssl/src/crypto/rand_extra/rand_extra.c",
- "third_party/boringssl/src/crypto/rand_extra/windows.c",
- "third_party/boringssl/src/crypto/rc4/rc4.c",
- "third_party/boringssl/src/crypto/refcount_c11.c",
- "third_party/boringssl/src/crypto/refcount_lock.c",
- "third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c",
- "third_party/boringssl/src/crypto/rsa_extra/rsa_print.c",
- "third_party/boringssl/src/crypto/siphash/siphash.c",
- "third_party/boringssl/src/crypto/stack/stack.c",
- "third_party/boringssl/src/crypto/thread.c",
- "third_party/boringssl/src/crypto/thread_none.c",
- "third_party/boringssl/src/crypto/thread_pthread.c",
- "third_party/boringssl/src/crypto/thread_win.c",
- "third_party/boringssl/src/crypto/trust_token/pmbtoken.c",
- "third_party/boringssl/src/crypto/trust_token/trust_token.c",
- "third_party/boringssl/src/crypto/trust_token/voprf.c",
- "third_party/boringssl/src/crypto/x509/a_digest.c",
- "third_party/boringssl/src/crypto/x509/a_sign.c",
- "third_party/boringssl/src/crypto/x509/a_verify.c",
- "third_party/boringssl/src/crypto/x509/algorithm.c",
- "third_party/boringssl/src/crypto/x509/asn1_gen.c",
- "third_party/boringssl/src/crypto/x509/by_dir.c",
- "third_party/boringssl/src/crypto/x509/by_file.c",
- "third_party/boringssl/src/crypto/x509/i2d_pr.c",
- "third_party/boringssl/src/crypto/x509/name_print.c",
- "third_party/boringssl/src/crypto/x509/rsa_pss.c",
- "third_party/boringssl/src/crypto/x509/t_crl.c",
- "third_party/boringssl/src/crypto/x509/t_req.c",
- "third_party/boringssl/src/crypto/x509/t_x509.c",
- "third_party/boringssl/src/crypto/x509/t_x509a.c",
- "third_party/boringssl/src/crypto/x509/x509.c",
- "third_party/boringssl/src/crypto/x509/x509_att.c",
- "third_party/boringssl/src/crypto/x509/x509_cmp.c",
- "third_party/boringssl/src/crypto/x509/x509_d2.c",
- "third_party/boringssl/src/crypto/x509/x509_def.c",
- "third_party/boringssl/src/crypto/x509/x509_ext.c",
- "third_party/boringssl/src/crypto/x509/x509_lu.c",
- "third_party/boringssl/src/crypto/x509/x509_obj.c",
- "third_party/boringssl/src/crypto/x509/x509_req.c",
- "third_party/boringssl/src/crypto/x509/x509_set.c",
- "third_party/boringssl/src/crypto/x509/x509_trs.c",
- "third_party/boringssl/src/crypto/x509/x509_txt.c",
- "third_party/boringssl/src/crypto/x509/x509_v3.c",
- "third_party/boringssl/src/crypto/x509/x509_vfy.c",
- "third_party/boringssl/src/crypto/x509/x509_vpm.c",
- "third_party/boringssl/src/crypto/x509/x509cset.c",
- "third_party/boringssl/src/crypto/x509/x509name.c",
- "third_party/boringssl/src/crypto/x509/x509rset.c",
- "third_party/boringssl/src/crypto/x509/x509spki.c",
- "third_party/boringssl/src/crypto/x509/x_algor.c",
- "third_party/boringssl/src/crypto/x509/x_all.c",
- "third_party/boringssl/src/crypto/x509/x_attrib.c",
- "third_party/boringssl/src/crypto/x509/x_crl.c",
- "third_party/boringssl/src/crypto/x509/x_exten.c",
- "third_party/boringssl/src/crypto/x509/x_info.c",
- "third_party/boringssl/src/crypto/x509/x_name.c",
- "third_party/boringssl/src/crypto/x509/x_pkey.c",
- "third_party/boringssl/src/crypto/x509/x_pubkey.c",
- "third_party/boringssl/src/crypto/x509/x_req.c",
- "third_party/boringssl/src/crypto/x509/x_sig.c",
- "third_party/boringssl/src/crypto/x509/x_spki.c",
- "third_party/boringssl/src/crypto/x509/x_val.c",
- "third_party/boringssl/src/crypto/x509/x_x509.c",
- "third_party/boringssl/src/crypto/x509/x_x509a.c",
- "third_party/boringssl/src/crypto/x509v3/pcy_cache.c",
- "third_party/boringssl/src/crypto/x509v3/pcy_data.c",
- "third_party/boringssl/src/crypto/x509v3/pcy_map.c",
- "third_party/boringssl/src/crypto/x509v3/pcy_node.c",
- "third_party/boringssl/src/crypto/x509v3/pcy_tree.c",
- "third_party/boringssl/src/crypto/x509v3/v3_akey.c",
- "third_party/boringssl/src/crypto/x509v3/v3_akeya.c",
- "third_party/boringssl/src/crypto/x509v3/v3_alt.c",
- "third_party/boringssl/src/crypto/x509v3/v3_bcons.c",
- "third_party/boringssl/src/crypto/x509v3/v3_bitst.c",
- "third_party/boringssl/src/crypto/x509v3/v3_conf.c",
- "third_party/boringssl/src/crypto/x509v3/v3_cpols.c",
- "third_party/boringssl/src/crypto/x509v3/v3_crld.c",
- "third_party/boringssl/src/crypto/x509v3/v3_enum.c",
- "third_party/boringssl/src/crypto/x509v3/v3_extku.c",
- "third_party/boringssl/src/crypto/x509v3/v3_genn.c",
- "third_party/boringssl/src/crypto/x509v3/v3_ia5.c",
- "third_party/boringssl/src/crypto/x509v3/v3_info.c",
- "third_party/boringssl/src/crypto/x509v3/v3_int.c",
- "third_party/boringssl/src/crypto/x509v3/v3_lib.c",
- "third_party/boringssl/src/crypto/x509v3/v3_ncons.c",
- "third_party/boringssl/src/crypto/x509v3/v3_ocsp.c",
- "third_party/boringssl/src/crypto/x509v3/v3_pci.c",
- "third_party/boringssl/src/crypto/x509v3/v3_pcia.c",
- "third_party/boringssl/src/crypto/x509v3/v3_pcons.c",
- "third_party/boringssl/src/crypto/x509v3/v3_pmaps.c",
- "third_party/boringssl/src/crypto/x509v3/v3_prn.c",
- "third_party/boringssl/src/crypto/x509v3/v3_purp.c",
- "third_party/boringssl/src/crypto/x509v3/v3_skey.c",
- "third_party/boringssl/src/crypto/x509v3/v3_utl.c",
- "third_party/boringssl/src/ssl/bio_ssl.cc",
- "third_party/boringssl/src/ssl/d1_both.cc",
- "third_party/boringssl/src/ssl/d1_lib.cc",
- "third_party/boringssl/src/ssl/d1_pkt.cc",
- "third_party/boringssl/src/ssl/d1_srtp.cc",
- "third_party/boringssl/src/ssl/dtls_method.cc",
- "third_party/boringssl/src/ssl/dtls_record.cc",
- "third_party/boringssl/src/ssl/encrypted_client_hello.cc",
- "third_party/boringssl/src/ssl/extensions.cc",
- "third_party/boringssl/src/ssl/handoff.cc",
- "third_party/boringssl/src/ssl/handshake.cc",
- "third_party/boringssl/src/ssl/handshake_client.cc",
- "third_party/boringssl/src/ssl/handshake_server.cc",
- "third_party/boringssl/src/ssl/s3_both.cc",
- "third_party/boringssl/src/ssl/s3_lib.cc",
- "third_party/boringssl/src/ssl/s3_pkt.cc",
- "third_party/boringssl/src/ssl/ssl_aead_ctx.cc",
- "third_party/boringssl/src/ssl/ssl_asn1.cc",
- "third_party/boringssl/src/ssl/ssl_buffer.cc",
- "third_party/boringssl/src/ssl/ssl_cert.cc",
- "third_party/boringssl/src/ssl/ssl_cipher.cc",
- "third_party/boringssl/src/ssl/ssl_file.cc",
- "third_party/boringssl/src/ssl/ssl_key_share.cc",
- "third_party/boringssl/src/ssl/ssl_lib.cc",
- "third_party/boringssl/src/ssl/ssl_privkey.cc",
- "third_party/boringssl/src/ssl/ssl_session.cc",
- "third_party/boringssl/src/ssl/ssl_stat.cc",
- "third_party/boringssl/src/ssl/ssl_transcript.cc",
- "third_party/boringssl/src/ssl/ssl_versions.cc",
- "third_party/boringssl/src/ssl/ssl_x509.cc",
- "third_party/boringssl/src/ssl/t1_enc.cc",
- "third_party/boringssl/src/ssl/tls13_both.cc",
- "third_party/boringssl/src/ssl/tls13_client.cc",
- "third_party/boringssl/src/ssl/tls13_enc.cc",
- "third_party/boringssl/src/ssl/tls13_server.cc",
- "third_party/boringssl/src/ssl/tls_method.cc",
- "third_party/boringssl/src/ssl/tls_record.cc",
- ],
defaults: [
"cronet_aml_defaults",
],
@@ -4778,11 +5260,599 @@
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
cpp_std: "c++20",
+ arch: {
+ x86: {
+ srcs: [
+ ":cronet_aml_third_party_boringssl_boringssl_asm_x86",
+ ":cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
+ "third_party/boringssl/err_data.c",
+ "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
+ "third_party/boringssl/src/crypto/asn1/a_bool.c",
+ "third_party/boringssl/src/crypto/asn1/a_d2i_fp.c",
+ "third_party/boringssl/src/crypto/asn1/a_dup.c",
+ "third_party/boringssl/src/crypto/asn1/a_gentm.c",
+ "third_party/boringssl/src/crypto/asn1/a_i2d_fp.c",
+ "third_party/boringssl/src/crypto/asn1/a_int.c",
+ "third_party/boringssl/src/crypto/asn1/a_mbstr.c",
+ "third_party/boringssl/src/crypto/asn1/a_object.c",
+ "third_party/boringssl/src/crypto/asn1/a_octet.c",
+ "third_party/boringssl/src/crypto/asn1/a_print.c",
+ "third_party/boringssl/src/crypto/asn1/a_strex.c",
+ "third_party/boringssl/src/crypto/asn1/a_strnid.c",
+ "third_party/boringssl/src/crypto/asn1/a_time.c",
+ "third_party/boringssl/src/crypto/asn1/a_type.c",
+ "third_party/boringssl/src/crypto/asn1/a_utctm.c",
+ "third_party/boringssl/src/crypto/asn1/a_utf8.c",
+ "third_party/boringssl/src/crypto/asn1/asn1_lib.c",
+ "third_party/boringssl/src/crypto/asn1/asn1_par.c",
+ "third_party/boringssl/src/crypto/asn1/asn_pack.c",
+ "third_party/boringssl/src/crypto/asn1/f_int.c",
+ "third_party/boringssl/src/crypto/asn1/f_string.c",
+ "third_party/boringssl/src/crypto/asn1/posix_time.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_dec.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_enc.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_fre.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_new.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_typ.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_utl.c",
+ "third_party/boringssl/src/crypto/base64/base64.c",
+ "third_party/boringssl/src/crypto/bio/bio.c",
+ "third_party/boringssl/src/crypto/bio/bio_mem.c",
+ "third_party/boringssl/src/crypto/bio/connect.c",
+ "third_party/boringssl/src/crypto/bio/fd.c",
+ "third_party/boringssl/src/crypto/bio/file.c",
+ "third_party/boringssl/src/crypto/bio/hexdump.c",
+ "third_party/boringssl/src/crypto/bio/pair.c",
+ "third_party/boringssl/src/crypto/bio/printf.c",
+ "third_party/boringssl/src/crypto/bio/socket.c",
+ "third_party/boringssl/src/crypto/bio/socket_helper.c",
+ "third_party/boringssl/src/crypto/blake2/blake2.c",
+ "third_party/boringssl/src/crypto/bn_extra/bn_asn1.c",
+ "third_party/boringssl/src/crypto/bn_extra/convert.c",
+ "third_party/boringssl/src/crypto/buf/buf.c",
+ "third_party/boringssl/src/crypto/bytestring/asn1_compat.c",
+ "third_party/boringssl/src/crypto/bytestring/ber.c",
+ "third_party/boringssl/src/crypto/bytestring/cbb.c",
+ "third_party/boringssl/src/crypto/bytestring/cbs.c",
+ "third_party/boringssl/src/crypto/bytestring/unicode.c",
+ "third_party/boringssl/src/crypto/chacha/chacha.c",
+ "third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c",
+ "third_party/boringssl/src/crypto/cipher_extra/derive_key.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_des.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_null.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_rc2.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_rc4.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_tls.c",
+ "third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c",
+ "third_party/boringssl/src/crypto/conf/conf.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_apple.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_fuchsia.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_linux.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_win.c",
+ "third_party/boringssl/src/crypto/cpu_arm.c",
+ "third_party/boringssl/src/crypto/cpu_arm_linux.c",
+ "third_party/boringssl/src/crypto/cpu_intel.c",
+ "third_party/boringssl/src/crypto/cpu_ppc64le.c",
+ "third_party/boringssl/src/crypto/crypto.c",
+ "third_party/boringssl/src/crypto/curve25519/curve25519.c",
+ "third_party/boringssl/src/crypto/curve25519/spake25519.c",
+ "third_party/boringssl/src/crypto/des/des.c",
+ "third_party/boringssl/src/crypto/dh_extra/dh_asn1.c",
+ "third_party/boringssl/src/crypto/dh_extra/params.c",
+ "third_party/boringssl/src/crypto/digest_extra/digest_extra.c",
+ "third_party/boringssl/src/crypto/dsa/dsa.c",
+ "third_party/boringssl/src/crypto/dsa/dsa_asn1.c",
+ "third_party/boringssl/src/crypto/ec_extra/ec_asn1.c",
+ "third_party/boringssl/src/crypto/ec_extra/ec_derive.c",
+ "third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c",
+ "third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c",
+ "third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c",
+ "third_party/boringssl/src/crypto/engine/engine.c",
+ "third_party/boringssl/src/crypto/err/err.c",
+ "third_party/boringssl/src/crypto/evp/evp.c",
+ "third_party/boringssl/src/crypto/evp/evp_asn1.c",
+ "third_party/boringssl/src/crypto/evp/evp_ctx.c",
+ "third_party/boringssl/src/crypto/evp/p_dsa_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_ec.c",
+ "third_party/boringssl/src/crypto/evp/p_ec_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_ed25519.c",
+ "third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_hkdf.c",
+ "third_party/boringssl/src/crypto/evp/p_rsa.c",
+ "third_party/boringssl/src/crypto/evp/p_rsa_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_x25519.c",
+ "third_party/boringssl/src/crypto/evp/p_x25519_asn1.c",
+ "third_party/boringssl/src/crypto/evp/pbkdf.c",
+ "third_party/boringssl/src/crypto/evp/print.c",
+ "third_party/boringssl/src/crypto/evp/scrypt.c",
+ "third_party/boringssl/src/crypto/evp/sign.c",
+ "third_party/boringssl/src/crypto/ex_data.c",
+ "third_party/boringssl/src/crypto/fipsmodule/bcm.c",
+ "third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c",
+ "third_party/boringssl/src/crypto/hkdf/hkdf.c",
+ "third_party/boringssl/src/crypto/hpke/hpke.c",
+ "third_party/boringssl/src/crypto/hrss/hrss.c",
+ "third_party/boringssl/src/crypto/lhash/lhash.c",
+ "third_party/boringssl/src/crypto/mem.c",
+ "third_party/boringssl/src/crypto/obj/obj.c",
+ "third_party/boringssl/src/crypto/obj/obj_xref.c",
+ "third_party/boringssl/src/crypto/pem/pem_all.c",
+ "third_party/boringssl/src/crypto/pem/pem_info.c",
+ "third_party/boringssl/src/crypto/pem/pem_lib.c",
+ "third_party/boringssl/src/crypto/pem/pem_oth.c",
+ "third_party/boringssl/src/crypto/pem/pem_pk8.c",
+ "third_party/boringssl/src/crypto/pem/pem_pkey.c",
+ "third_party/boringssl/src/crypto/pem/pem_x509.c",
+ "third_party/boringssl/src/crypto/pem/pem_xaux.c",
+ "third_party/boringssl/src/crypto/pkcs7/pkcs7.c",
+ "third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c",
+ "third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c",
+ "third_party/boringssl/src/crypto/pkcs8/pkcs8.c",
+ "third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c",
+ "third_party/boringssl/src/crypto/poly1305/poly1305.c",
+ "third_party/boringssl/src/crypto/poly1305/poly1305_arm.c",
+ "third_party/boringssl/src/crypto/poly1305/poly1305_vec.c",
+ "third_party/boringssl/src/crypto/pool/pool.c",
+ "third_party/boringssl/src/crypto/rand_extra/deterministic.c",
+ "third_party/boringssl/src/crypto/rand_extra/forkunsafe.c",
+ "third_party/boringssl/src/crypto/rand_extra/fuchsia.c",
+ "third_party/boringssl/src/crypto/rand_extra/passive.c",
+ "third_party/boringssl/src/crypto/rand_extra/rand_extra.c",
+ "third_party/boringssl/src/crypto/rand_extra/windows.c",
+ "third_party/boringssl/src/crypto/rc4/rc4.c",
+ "third_party/boringssl/src/crypto/refcount_c11.c",
+ "third_party/boringssl/src/crypto/refcount_lock.c",
+ "third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c",
+ "third_party/boringssl/src/crypto/rsa_extra/rsa_print.c",
+ "third_party/boringssl/src/crypto/siphash/siphash.c",
+ "third_party/boringssl/src/crypto/stack/stack.c",
+ "third_party/boringssl/src/crypto/thread.c",
+ "third_party/boringssl/src/crypto/thread_none.c",
+ "third_party/boringssl/src/crypto/thread_pthread.c",
+ "third_party/boringssl/src/crypto/thread_win.c",
+ "third_party/boringssl/src/crypto/trust_token/pmbtoken.c",
+ "third_party/boringssl/src/crypto/trust_token/trust_token.c",
+ "third_party/boringssl/src/crypto/trust_token/voprf.c",
+ "third_party/boringssl/src/crypto/x509/a_digest.c",
+ "third_party/boringssl/src/crypto/x509/a_sign.c",
+ "third_party/boringssl/src/crypto/x509/a_verify.c",
+ "third_party/boringssl/src/crypto/x509/algorithm.c",
+ "third_party/boringssl/src/crypto/x509/asn1_gen.c",
+ "third_party/boringssl/src/crypto/x509/by_dir.c",
+ "third_party/boringssl/src/crypto/x509/by_file.c",
+ "third_party/boringssl/src/crypto/x509/i2d_pr.c",
+ "third_party/boringssl/src/crypto/x509/name_print.c",
+ "third_party/boringssl/src/crypto/x509/rsa_pss.c",
+ "third_party/boringssl/src/crypto/x509/t_crl.c",
+ "third_party/boringssl/src/crypto/x509/t_req.c",
+ "third_party/boringssl/src/crypto/x509/t_x509.c",
+ "third_party/boringssl/src/crypto/x509/t_x509a.c",
+ "third_party/boringssl/src/crypto/x509/x509.c",
+ "third_party/boringssl/src/crypto/x509/x509_att.c",
+ "third_party/boringssl/src/crypto/x509/x509_cmp.c",
+ "third_party/boringssl/src/crypto/x509/x509_d2.c",
+ "third_party/boringssl/src/crypto/x509/x509_def.c",
+ "third_party/boringssl/src/crypto/x509/x509_ext.c",
+ "third_party/boringssl/src/crypto/x509/x509_lu.c",
+ "third_party/boringssl/src/crypto/x509/x509_obj.c",
+ "third_party/boringssl/src/crypto/x509/x509_req.c",
+ "third_party/boringssl/src/crypto/x509/x509_set.c",
+ "third_party/boringssl/src/crypto/x509/x509_trs.c",
+ "third_party/boringssl/src/crypto/x509/x509_txt.c",
+ "third_party/boringssl/src/crypto/x509/x509_v3.c",
+ "third_party/boringssl/src/crypto/x509/x509_vfy.c",
+ "third_party/boringssl/src/crypto/x509/x509_vpm.c",
+ "third_party/boringssl/src/crypto/x509/x509cset.c",
+ "third_party/boringssl/src/crypto/x509/x509name.c",
+ "third_party/boringssl/src/crypto/x509/x509rset.c",
+ "third_party/boringssl/src/crypto/x509/x509spki.c",
+ "third_party/boringssl/src/crypto/x509/x_algor.c",
+ "third_party/boringssl/src/crypto/x509/x_all.c",
+ "third_party/boringssl/src/crypto/x509/x_attrib.c",
+ "third_party/boringssl/src/crypto/x509/x_crl.c",
+ "third_party/boringssl/src/crypto/x509/x_exten.c",
+ "third_party/boringssl/src/crypto/x509/x_info.c",
+ "third_party/boringssl/src/crypto/x509/x_name.c",
+ "third_party/boringssl/src/crypto/x509/x_pkey.c",
+ "third_party/boringssl/src/crypto/x509/x_pubkey.c",
+ "third_party/boringssl/src/crypto/x509/x_req.c",
+ "third_party/boringssl/src/crypto/x509/x_sig.c",
+ "third_party/boringssl/src/crypto/x509/x_spki.c",
+ "third_party/boringssl/src/crypto/x509/x_val.c",
+ "third_party/boringssl/src/crypto/x509/x_x509.c",
+ "third_party/boringssl/src/crypto/x509/x_x509a.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_cache.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_data.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_map.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_node.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_tree.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_akey.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_akeya.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_alt.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_bcons.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_bitst.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_conf.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_cpols.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_crld.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_enum.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_extku.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_genn.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_ia5.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_info.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_int.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_lib.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_ncons.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_ocsp.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pci.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pcia.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pcons.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pmaps.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_prn.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_purp.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_skey.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_utl.c",
+ "third_party/boringssl/src/ssl/bio_ssl.cc",
+ "third_party/boringssl/src/ssl/d1_both.cc",
+ "third_party/boringssl/src/ssl/d1_lib.cc",
+ "third_party/boringssl/src/ssl/d1_pkt.cc",
+ "third_party/boringssl/src/ssl/d1_srtp.cc",
+ "third_party/boringssl/src/ssl/dtls_method.cc",
+ "third_party/boringssl/src/ssl/dtls_record.cc",
+ "third_party/boringssl/src/ssl/encrypted_client_hello.cc",
+ "third_party/boringssl/src/ssl/extensions.cc",
+ "third_party/boringssl/src/ssl/handoff.cc",
+ "third_party/boringssl/src/ssl/handshake.cc",
+ "third_party/boringssl/src/ssl/handshake_client.cc",
+ "third_party/boringssl/src/ssl/handshake_server.cc",
+ "third_party/boringssl/src/ssl/s3_both.cc",
+ "third_party/boringssl/src/ssl/s3_lib.cc",
+ "third_party/boringssl/src/ssl/s3_pkt.cc",
+ "third_party/boringssl/src/ssl/ssl_aead_ctx.cc",
+ "third_party/boringssl/src/ssl/ssl_asn1.cc",
+ "third_party/boringssl/src/ssl/ssl_buffer.cc",
+ "third_party/boringssl/src/ssl/ssl_cert.cc",
+ "third_party/boringssl/src/ssl/ssl_cipher.cc",
+ "third_party/boringssl/src/ssl/ssl_file.cc",
+ "third_party/boringssl/src/ssl/ssl_key_share.cc",
+ "third_party/boringssl/src/ssl/ssl_lib.cc",
+ "third_party/boringssl/src/ssl/ssl_privkey.cc",
+ "third_party/boringssl/src/ssl/ssl_session.cc",
+ "third_party/boringssl/src/ssl/ssl_stat.cc",
+ "third_party/boringssl/src/ssl/ssl_transcript.cc",
+ "third_party/boringssl/src/ssl/ssl_versions.cc",
+ "third_party/boringssl/src/ssl/ssl_x509.cc",
+ "third_party/boringssl/src/ssl/t1_enc.cc",
+ "third_party/boringssl/src/ssl/tls13_both.cc",
+ "third_party/boringssl/src/ssl/tls13_client.cc",
+ "third_party/boringssl/src/ssl/tls13_enc.cc",
+ "third_party/boringssl/src/ssl/tls13_server.cc",
+ "third_party/boringssl/src/ssl/tls_method.cc",
+ "third_party/boringssl/src/ssl/tls_record.cc",
+ ],
+ },
+ x86_64: {
+ srcs: [
+ ":cronet_aml_third_party_boringssl_boringssl_asm",
+ ":cronet_aml_third_party_boringssl_src_third_party_fiat_fiat_license",
+ "third_party/boringssl/err_data.c",
+ "third_party/boringssl/src/crypto/asn1/a_bitstr.c",
+ "third_party/boringssl/src/crypto/asn1/a_bool.c",
+ "third_party/boringssl/src/crypto/asn1/a_d2i_fp.c",
+ "third_party/boringssl/src/crypto/asn1/a_dup.c",
+ "third_party/boringssl/src/crypto/asn1/a_gentm.c",
+ "third_party/boringssl/src/crypto/asn1/a_i2d_fp.c",
+ "third_party/boringssl/src/crypto/asn1/a_int.c",
+ "third_party/boringssl/src/crypto/asn1/a_mbstr.c",
+ "third_party/boringssl/src/crypto/asn1/a_object.c",
+ "third_party/boringssl/src/crypto/asn1/a_octet.c",
+ "third_party/boringssl/src/crypto/asn1/a_print.c",
+ "third_party/boringssl/src/crypto/asn1/a_strex.c",
+ "third_party/boringssl/src/crypto/asn1/a_strnid.c",
+ "third_party/boringssl/src/crypto/asn1/a_time.c",
+ "third_party/boringssl/src/crypto/asn1/a_type.c",
+ "third_party/boringssl/src/crypto/asn1/a_utctm.c",
+ "third_party/boringssl/src/crypto/asn1/a_utf8.c",
+ "third_party/boringssl/src/crypto/asn1/asn1_lib.c",
+ "third_party/boringssl/src/crypto/asn1/asn1_par.c",
+ "third_party/boringssl/src/crypto/asn1/asn_pack.c",
+ "third_party/boringssl/src/crypto/asn1/f_int.c",
+ "third_party/boringssl/src/crypto/asn1/f_string.c",
+ "third_party/boringssl/src/crypto/asn1/posix_time.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_dec.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_enc.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_fre.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_new.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_typ.c",
+ "third_party/boringssl/src/crypto/asn1/tasn_utl.c",
+ "third_party/boringssl/src/crypto/base64/base64.c",
+ "third_party/boringssl/src/crypto/bio/bio.c",
+ "third_party/boringssl/src/crypto/bio/bio_mem.c",
+ "third_party/boringssl/src/crypto/bio/connect.c",
+ "third_party/boringssl/src/crypto/bio/fd.c",
+ "third_party/boringssl/src/crypto/bio/file.c",
+ "third_party/boringssl/src/crypto/bio/hexdump.c",
+ "third_party/boringssl/src/crypto/bio/pair.c",
+ "third_party/boringssl/src/crypto/bio/printf.c",
+ "third_party/boringssl/src/crypto/bio/socket.c",
+ "third_party/boringssl/src/crypto/bio/socket_helper.c",
+ "third_party/boringssl/src/crypto/blake2/blake2.c",
+ "third_party/boringssl/src/crypto/bn_extra/bn_asn1.c",
+ "third_party/boringssl/src/crypto/bn_extra/convert.c",
+ "third_party/boringssl/src/crypto/buf/buf.c",
+ "third_party/boringssl/src/crypto/bytestring/asn1_compat.c",
+ "third_party/boringssl/src/crypto/bytestring/ber.c",
+ "third_party/boringssl/src/crypto/bytestring/cbb.c",
+ "third_party/boringssl/src/crypto/bytestring/cbs.c",
+ "third_party/boringssl/src/crypto/bytestring/unicode.c",
+ "third_party/boringssl/src/crypto/chacha/chacha.c",
+ "third_party/boringssl/src/crypto/cipher_extra/cipher_extra.c",
+ "third_party/boringssl/src/crypto/cipher_extra/derive_key.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_aesctrhmac.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_aesgcmsiv.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_chacha20poly1305.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_des.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_null.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_rc2.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_rc4.c",
+ "third_party/boringssl/src/crypto/cipher_extra/e_tls.c",
+ "third_party/boringssl/src/crypto/cipher_extra/tls_cbc.c",
+ "third_party/boringssl/src/crypto/conf/conf.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_apple.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_fuchsia.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_linux.c",
+ "third_party/boringssl/src/crypto/cpu_aarch64_win.c",
+ "third_party/boringssl/src/crypto/cpu_arm.c",
+ "third_party/boringssl/src/crypto/cpu_arm_linux.c",
+ "third_party/boringssl/src/crypto/cpu_intel.c",
+ "third_party/boringssl/src/crypto/cpu_ppc64le.c",
+ "third_party/boringssl/src/crypto/crypto.c",
+ "third_party/boringssl/src/crypto/curve25519/curve25519.c",
+ "third_party/boringssl/src/crypto/curve25519/spake25519.c",
+ "third_party/boringssl/src/crypto/des/des.c",
+ "third_party/boringssl/src/crypto/dh_extra/dh_asn1.c",
+ "third_party/boringssl/src/crypto/dh_extra/params.c",
+ "third_party/boringssl/src/crypto/digest_extra/digest_extra.c",
+ "third_party/boringssl/src/crypto/dsa/dsa.c",
+ "third_party/boringssl/src/crypto/dsa/dsa_asn1.c",
+ "third_party/boringssl/src/crypto/ec_extra/ec_asn1.c",
+ "third_party/boringssl/src/crypto/ec_extra/ec_derive.c",
+ "third_party/boringssl/src/crypto/ec_extra/hash_to_curve.c",
+ "third_party/boringssl/src/crypto/ecdh_extra/ecdh_extra.c",
+ "third_party/boringssl/src/crypto/ecdsa_extra/ecdsa_asn1.c",
+ "third_party/boringssl/src/crypto/engine/engine.c",
+ "third_party/boringssl/src/crypto/err/err.c",
+ "third_party/boringssl/src/crypto/evp/evp.c",
+ "third_party/boringssl/src/crypto/evp/evp_asn1.c",
+ "third_party/boringssl/src/crypto/evp/evp_ctx.c",
+ "third_party/boringssl/src/crypto/evp/p_dsa_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_ec.c",
+ "third_party/boringssl/src/crypto/evp/p_ec_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_ed25519.c",
+ "third_party/boringssl/src/crypto/evp/p_ed25519_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_hkdf.c",
+ "third_party/boringssl/src/crypto/evp/p_rsa.c",
+ "third_party/boringssl/src/crypto/evp/p_rsa_asn1.c",
+ "third_party/boringssl/src/crypto/evp/p_x25519.c",
+ "third_party/boringssl/src/crypto/evp/p_x25519_asn1.c",
+ "third_party/boringssl/src/crypto/evp/pbkdf.c",
+ "third_party/boringssl/src/crypto/evp/print.c",
+ "third_party/boringssl/src/crypto/evp/scrypt.c",
+ "third_party/boringssl/src/crypto/evp/sign.c",
+ "third_party/boringssl/src/crypto/ex_data.c",
+ "third_party/boringssl/src/crypto/fipsmodule/bcm.c",
+ "third_party/boringssl/src/crypto/fipsmodule/fips_shared_support.c",
+ "third_party/boringssl/src/crypto/hkdf/hkdf.c",
+ "third_party/boringssl/src/crypto/hpke/hpke.c",
+ "third_party/boringssl/src/crypto/hrss/hrss.c",
+ "third_party/boringssl/src/crypto/lhash/lhash.c",
+ "third_party/boringssl/src/crypto/mem.c",
+ "third_party/boringssl/src/crypto/obj/obj.c",
+ "third_party/boringssl/src/crypto/obj/obj_xref.c",
+ "third_party/boringssl/src/crypto/pem/pem_all.c",
+ "third_party/boringssl/src/crypto/pem/pem_info.c",
+ "third_party/boringssl/src/crypto/pem/pem_lib.c",
+ "third_party/boringssl/src/crypto/pem/pem_oth.c",
+ "third_party/boringssl/src/crypto/pem/pem_pk8.c",
+ "third_party/boringssl/src/crypto/pem/pem_pkey.c",
+ "third_party/boringssl/src/crypto/pem/pem_x509.c",
+ "third_party/boringssl/src/crypto/pem/pem_xaux.c",
+ "third_party/boringssl/src/crypto/pkcs7/pkcs7.c",
+ "third_party/boringssl/src/crypto/pkcs7/pkcs7_x509.c",
+ "third_party/boringssl/src/crypto/pkcs8/p5_pbev2.c",
+ "third_party/boringssl/src/crypto/pkcs8/pkcs8.c",
+ "third_party/boringssl/src/crypto/pkcs8/pkcs8_x509.c",
+ "third_party/boringssl/src/crypto/poly1305/poly1305.c",
+ "third_party/boringssl/src/crypto/poly1305/poly1305_arm.c",
+ "third_party/boringssl/src/crypto/poly1305/poly1305_vec.c",
+ "third_party/boringssl/src/crypto/pool/pool.c",
+ "third_party/boringssl/src/crypto/rand_extra/deterministic.c",
+ "third_party/boringssl/src/crypto/rand_extra/forkunsafe.c",
+ "third_party/boringssl/src/crypto/rand_extra/fuchsia.c",
+ "third_party/boringssl/src/crypto/rand_extra/passive.c",
+ "third_party/boringssl/src/crypto/rand_extra/rand_extra.c",
+ "third_party/boringssl/src/crypto/rand_extra/windows.c",
+ "third_party/boringssl/src/crypto/rc4/rc4.c",
+ "third_party/boringssl/src/crypto/refcount_c11.c",
+ "third_party/boringssl/src/crypto/refcount_lock.c",
+ "third_party/boringssl/src/crypto/rsa_extra/rsa_asn1.c",
+ "third_party/boringssl/src/crypto/rsa_extra/rsa_print.c",
+ "third_party/boringssl/src/crypto/siphash/siphash.c",
+ "third_party/boringssl/src/crypto/stack/stack.c",
+ "third_party/boringssl/src/crypto/thread.c",
+ "third_party/boringssl/src/crypto/thread_none.c",
+ "third_party/boringssl/src/crypto/thread_pthread.c",
+ "third_party/boringssl/src/crypto/thread_win.c",
+ "third_party/boringssl/src/crypto/trust_token/pmbtoken.c",
+ "third_party/boringssl/src/crypto/trust_token/trust_token.c",
+ "third_party/boringssl/src/crypto/trust_token/voprf.c",
+ "third_party/boringssl/src/crypto/x509/a_digest.c",
+ "third_party/boringssl/src/crypto/x509/a_sign.c",
+ "third_party/boringssl/src/crypto/x509/a_verify.c",
+ "third_party/boringssl/src/crypto/x509/algorithm.c",
+ "third_party/boringssl/src/crypto/x509/asn1_gen.c",
+ "third_party/boringssl/src/crypto/x509/by_dir.c",
+ "third_party/boringssl/src/crypto/x509/by_file.c",
+ "third_party/boringssl/src/crypto/x509/i2d_pr.c",
+ "third_party/boringssl/src/crypto/x509/name_print.c",
+ "third_party/boringssl/src/crypto/x509/rsa_pss.c",
+ "third_party/boringssl/src/crypto/x509/t_crl.c",
+ "third_party/boringssl/src/crypto/x509/t_req.c",
+ "third_party/boringssl/src/crypto/x509/t_x509.c",
+ "third_party/boringssl/src/crypto/x509/t_x509a.c",
+ "third_party/boringssl/src/crypto/x509/x509.c",
+ "third_party/boringssl/src/crypto/x509/x509_att.c",
+ "third_party/boringssl/src/crypto/x509/x509_cmp.c",
+ "third_party/boringssl/src/crypto/x509/x509_d2.c",
+ "third_party/boringssl/src/crypto/x509/x509_def.c",
+ "third_party/boringssl/src/crypto/x509/x509_ext.c",
+ "third_party/boringssl/src/crypto/x509/x509_lu.c",
+ "third_party/boringssl/src/crypto/x509/x509_obj.c",
+ "third_party/boringssl/src/crypto/x509/x509_req.c",
+ "third_party/boringssl/src/crypto/x509/x509_set.c",
+ "third_party/boringssl/src/crypto/x509/x509_trs.c",
+ "third_party/boringssl/src/crypto/x509/x509_txt.c",
+ "third_party/boringssl/src/crypto/x509/x509_v3.c",
+ "third_party/boringssl/src/crypto/x509/x509_vfy.c",
+ "third_party/boringssl/src/crypto/x509/x509_vpm.c",
+ "third_party/boringssl/src/crypto/x509/x509cset.c",
+ "third_party/boringssl/src/crypto/x509/x509name.c",
+ "third_party/boringssl/src/crypto/x509/x509rset.c",
+ "third_party/boringssl/src/crypto/x509/x509spki.c",
+ "third_party/boringssl/src/crypto/x509/x_algor.c",
+ "third_party/boringssl/src/crypto/x509/x_all.c",
+ "third_party/boringssl/src/crypto/x509/x_attrib.c",
+ "third_party/boringssl/src/crypto/x509/x_crl.c",
+ "third_party/boringssl/src/crypto/x509/x_exten.c",
+ "third_party/boringssl/src/crypto/x509/x_info.c",
+ "third_party/boringssl/src/crypto/x509/x_name.c",
+ "third_party/boringssl/src/crypto/x509/x_pkey.c",
+ "third_party/boringssl/src/crypto/x509/x_pubkey.c",
+ "third_party/boringssl/src/crypto/x509/x_req.c",
+ "third_party/boringssl/src/crypto/x509/x_sig.c",
+ "third_party/boringssl/src/crypto/x509/x_spki.c",
+ "third_party/boringssl/src/crypto/x509/x_val.c",
+ "third_party/boringssl/src/crypto/x509/x_x509.c",
+ "third_party/boringssl/src/crypto/x509/x_x509a.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_cache.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_data.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_map.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_node.c",
+ "third_party/boringssl/src/crypto/x509v3/pcy_tree.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_akey.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_akeya.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_alt.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_bcons.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_bitst.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_conf.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_cpols.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_crld.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_enum.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_extku.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_genn.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_ia5.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_info.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_int.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_lib.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_ncons.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_ocsp.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pci.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pcia.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pcons.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_pmaps.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_prn.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_purp.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_skey.c",
+ "third_party/boringssl/src/crypto/x509v3/v3_utl.c",
+ "third_party/boringssl/src/ssl/bio_ssl.cc",
+ "third_party/boringssl/src/ssl/d1_both.cc",
+ "third_party/boringssl/src/ssl/d1_lib.cc",
+ "third_party/boringssl/src/ssl/d1_pkt.cc",
+ "third_party/boringssl/src/ssl/d1_srtp.cc",
+ "third_party/boringssl/src/ssl/dtls_method.cc",
+ "third_party/boringssl/src/ssl/dtls_record.cc",
+ "third_party/boringssl/src/ssl/encrypted_client_hello.cc",
+ "third_party/boringssl/src/ssl/extensions.cc",
+ "third_party/boringssl/src/ssl/handoff.cc",
+ "third_party/boringssl/src/ssl/handshake.cc",
+ "third_party/boringssl/src/ssl/handshake_client.cc",
+ "third_party/boringssl/src/ssl/handshake_server.cc",
+ "third_party/boringssl/src/ssl/s3_both.cc",
+ "third_party/boringssl/src/ssl/s3_lib.cc",
+ "third_party/boringssl/src/ssl/s3_pkt.cc",
+ "third_party/boringssl/src/ssl/ssl_aead_ctx.cc",
+ "third_party/boringssl/src/ssl/ssl_asn1.cc",
+ "third_party/boringssl/src/ssl/ssl_buffer.cc",
+ "third_party/boringssl/src/ssl/ssl_cert.cc",
+ "third_party/boringssl/src/ssl/ssl_cipher.cc",
+ "third_party/boringssl/src/ssl/ssl_file.cc",
+ "third_party/boringssl/src/ssl/ssl_key_share.cc",
+ "third_party/boringssl/src/ssl/ssl_lib.cc",
+ "third_party/boringssl/src/ssl/ssl_privkey.cc",
+ "third_party/boringssl/src/ssl/ssl_session.cc",
+ "third_party/boringssl/src/ssl/ssl_stat.cc",
+ "third_party/boringssl/src/ssl/ssl_transcript.cc",
+ "third_party/boringssl/src/ssl/ssl_versions.cc",
+ "third_party/boringssl/src/ssl/ssl_x509.cc",
+ "third_party/boringssl/src/ssl/t1_enc.cc",
+ "third_party/boringssl/src/ssl/tls13_both.cc",
+ "third_party/boringssl/src/ssl/tls13_client.cc",
+ "third_party/boringssl/src/ssl/tls13_enc.cc",
+ "third_party/boringssl/src/ssl/tls13_server.cc",
+ "third_party/boringssl/src/ssl/tls_method.cc",
+ "third_party/boringssl/src/ssl/tls_record.cc",
+ ],
+ },
+ },
}
// GN: //third_party/boringssl:boringssl_asm
filegroup {
name: "cronet_aml_third_party_boringssl_boringssl_asm",
+ srcs: [
+ "third_party/boringssl/linux-x86_64/crypto/chacha/chacha-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/cipher_extra/aes128gcmsiv-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/cipher_extra/chacha20_poly1305_x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-gcm-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/aesni-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-ssse3-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/ghash-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/md5-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256-x86_64-asm.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/p256_beeu-x86_64-asm.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rdrand-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/rsaz-avx2.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha1-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha256-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/sha512-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont.S",
+ "third_party/boringssl/linux-x86_64/crypto/fipsmodule/x86_64-mont5.S",
+ "third_party/boringssl/linux-x86_64/crypto/test/trampoline-x86_64.S",
+ "third_party/boringssl/src/crypto/hrss/asm/poly_rq_mul.S",
+ ],
+}
+
+// GN: //third_party/boringssl:boringssl_asm
+filegroup {
+ name: "cronet_aml_third_party_boringssl_boringssl_asm_x86",
+ srcs: [
+ "third_party/boringssl/linux-x86/crypto/chacha/chacha-x86.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/aesni-x86.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/bn-586.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/co-586.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-ssse3-x86.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/ghash-x86.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/md5-586.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/sha1-586.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/sha256-586.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/sha512-586.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/vpaes-x86.S",
+ "third_party/boringssl/linux-x86/crypto/fipsmodule/x86-mont.S",
+ "third_party/boringssl/linux-x86/crypto/test/trampoline-x86.S",
+ ],
}
// GN: //third_party/boringssl/src/third_party/fiat:fiat_license
@@ -4885,6 +5955,248 @@
// GN: //third_party/icu:icui18n
cc_library_static {
name: "cronet_aml_third_party_icu_icui18n",
+ srcs: [
+ "third_party/icu/source/i18n/alphaindex.cpp",
+ "third_party/icu/source/i18n/anytrans.cpp",
+ "third_party/icu/source/i18n/astro.cpp",
+ "third_party/icu/source/i18n/basictz.cpp",
+ "third_party/icu/source/i18n/bocsu.cpp",
+ "third_party/icu/source/i18n/brktrans.cpp",
+ "third_party/icu/source/i18n/buddhcal.cpp",
+ "third_party/icu/source/i18n/calendar.cpp",
+ "third_party/icu/source/i18n/casetrn.cpp",
+ "third_party/icu/source/i18n/cecal.cpp",
+ "third_party/icu/source/i18n/chnsecal.cpp",
+ "third_party/icu/source/i18n/choicfmt.cpp",
+ "third_party/icu/source/i18n/coleitr.cpp",
+ "third_party/icu/source/i18n/coll.cpp",
+ "third_party/icu/source/i18n/collation.cpp",
+ "third_party/icu/source/i18n/collationbuilder.cpp",
+ "third_party/icu/source/i18n/collationcompare.cpp",
+ "third_party/icu/source/i18n/collationdata.cpp",
+ "third_party/icu/source/i18n/collationdatabuilder.cpp",
+ "third_party/icu/source/i18n/collationdatareader.cpp",
+ "third_party/icu/source/i18n/collationdatawriter.cpp",
+ "third_party/icu/source/i18n/collationfastlatin.cpp",
+ "third_party/icu/source/i18n/collationfastlatinbuilder.cpp",
+ "third_party/icu/source/i18n/collationfcd.cpp",
+ "third_party/icu/source/i18n/collationiterator.cpp",
+ "third_party/icu/source/i18n/collationkeys.cpp",
+ "third_party/icu/source/i18n/collationroot.cpp",
+ "third_party/icu/source/i18n/collationrootelements.cpp",
+ "third_party/icu/source/i18n/collationruleparser.cpp",
+ "third_party/icu/source/i18n/collationsets.cpp",
+ "third_party/icu/source/i18n/collationsettings.cpp",
+ "third_party/icu/source/i18n/collationtailoring.cpp",
+ "third_party/icu/source/i18n/collationweights.cpp",
+ "third_party/icu/source/i18n/compactdecimalformat.cpp",
+ "third_party/icu/source/i18n/coptccal.cpp",
+ "third_party/icu/source/i18n/cpdtrans.cpp",
+ "third_party/icu/source/i18n/csdetect.cpp",
+ "third_party/icu/source/i18n/csmatch.cpp",
+ "third_party/icu/source/i18n/csr2022.cpp",
+ "third_party/icu/source/i18n/csrecog.cpp",
+ "third_party/icu/source/i18n/csrmbcs.cpp",
+ "third_party/icu/source/i18n/csrsbcs.cpp",
+ "third_party/icu/source/i18n/csrucode.cpp",
+ "third_party/icu/source/i18n/csrutf8.cpp",
+ "third_party/icu/source/i18n/curramt.cpp",
+ "third_party/icu/source/i18n/currfmt.cpp",
+ "third_party/icu/source/i18n/currpinf.cpp",
+ "third_party/icu/source/i18n/currunit.cpp",
+ "third_party/icu/source/i18n/dangical.cpp",
+ "third_party/icu/source/i18n/datefmt.cpp",
+ "third_party/icu/source/i18n/dayperiodrules.cpp",
+ "third_party/icu/source/i18n/dcfmtsym.cpp",
+ "third_party/icu/source/i18n/decContext.cpp",
+ "third_party/icu/source/i18n/decNumber.cpp",
+ "third_party/icu/source/i18n/decimfmt.cpp",
+ "third_party/icu/source/i18n/double-conversion-bignum-dtoa.cpp",
+ "third_party/icu/source/i18n/double-conversion-bignum.cpp",
+ "third_party/icu/source/i18n/double-conversion-cached-powers.cpp",
+ "third_party/icu/source/i18n/double-conversion-double-to-string.cpp",
+ "third_party/icu/source/i18n/double-conversion-fast-dtoa.cpp",
+ "third_party/icu/source/i18n/double-conversion-string-to-double.cpp",
+ "third_party/icu/source/i18n/double-conversion-strtod.cpp",
+ "third_party/icu/source/i18n/dtfmtsym.cpp",
+ "third_party/icu/source/i18n/dtitvfmt.cpp",
+ "third_party/icu/source/i18n/dtitvinf.cpp",
+ "third_party/icu/source/i18n/dtptngen.cpp",
+ "third_party/icu/source/i18n/dtrule.cpp",
+ "third_party/icu/source/i18n/erarules.cpp",
+ "third_party/icu/source/i18n/esctrn.cpp",
+ "third_party/icu/source/i18n/ethpccal.cpp",
+ "third_party/icu/source/i18n/fmtable.cpp",
+ "third_party/icu/source/i18n/fmtable_cnv.cpp",
+ "third_party/icu/source/i18n/format.cpp",
+ "third_party/icu/source/i18n/formatted_string_builder.cpp",
+ "third_party/icu/source/i18n/formattedval_iterimpl.cpp",
+ "third_party/icu/source/i18n/formattedval_sbimpl.cpp",
+ "third_party/icu/source/i18n/formattedvalue.cpp",
+ "third_party/icu/source/i18n/fphdlimp.cpp",
+ "third_party/icu/source/i18n/fpositer.cpp",
+ "third_party/icu/source/i18n/funcrepl.cpp",
+ "third_party/icu/source/i18n/gender.cpp",
+ "third_party/icu/source/i18n/gregocal.cpp",
+ "third_party/icu/source/i18n/gregoimp.cpp",
+ "third_party/icu/source/i18n/hebrwcal.cpp",
+ "third_party/icu/source/i18n/indiancal.cpp",
+ "third_party/icu/source/i18n/inputext.cpp",
+ "third_party/icu/source/i18n/islamcal.cpp",
+ "third_party/icu/source/i18n/japancal.cpp",
+ "third_party/icu/source/i18n/listformatter.cpp",
+ "third_party/icu/source/i18n/measfmt.cpp",
+ "third_party/icu/source/i18n/measunit.cpp",
+ "third_party/icu/source/i18n/measunit_extra.cpp",
+ "third_party/icu/source/i18n/measure.cpp",
+ "third_party/icu/source/i18n/msgfmt.cpp",
+ "third_party/icu/source/i18n/name2uni.cpp",
+ "third_party/icu/source/i18n/nfrs.cpp",
+ "third_party/icu/source/i18n/nfrule.cpp",
+ "third_party/icu/source/i18n/nfsubs.cpp",
+ "third_party/icu/source/i18n/nortrans.cpp",
+ "third_party/icu/source/i18n/nultrans.cpp",
+ "third_party/icu/source/i18n/number_affixutils.cpp",
+ "third_party/icu/source/i18n/number_asformat.cpp",
+ "third_party/icu/source/i18n/number_capi.cpp",
+ "third_party/icu/source/i18n/number_compact.cpp",
+ "third_party/icu/source/i18n/number_currencysymbols.cpp",
+ "third_party/icu/source/i18n/number_decimalquantity.cpp",
+ "third_party/icu/source/i18n/number_decimfmtprops.cpp",
+ "third_party/icu/source/i18n/number_fluent.cpp",
+ "third_party/icu/source/i18n/number_formatimpl.cpp",
+ "third_party/icu/source/i18n/number_grouping.cpp",
+ "third_party/icu/source/i18n/number_integerwidth.cpp",
+ "third_party/icu/source/i18n/number_longnames.cpp",
+ "third_party/icu/source/i18n/number_mapper.cpp",
+ "third_party/icu/source/i18n/number_modifiers.cpp",
+ "third_party/icu/source/i18n/number_multiplier.cpp",
+ "third_party/icu/source/i18n/number_notation.cpp",
+ "third_party/icu/source/i18n/number_output.cpp",
+ "third_party/icu/source/i18n/number_padding.cpp",
+ "third_party/icu/source/i18n/number_patternmodifier.cpp",
+ "third_party/icu/source/i18n/number_patternstring.cpp",
+ "third_party/icu/source/i18n/number_rounding.cpp",
+ "third_party/icu/source/i18n/number_scientific.cpp",
+ "third_party/icu/source/i18n/number_skeletons.cpp",
+ "third_party/icu/source/i18n/number_symbolswrapper.cpp",
+ "third_party/icu/source/i18n/number_usageprefs.cpp",
+ "third_party/icu/source/i18n/number_utils.cpp",
+ "third_party/icu/source/i18n/numfmt.cpp",
+ "third_party/icu/source/i18n/numparse_affixes.cpp",
+ "third_party/icu/source/i18n/numparse_compositions.cpp",
+ "third_party/icu/source/i18n/numparse_currency.cpp",
+ "third_party/icu/source/i18n/numparse_decimal.cpp",
+ "third_party/icu/source/i18n/numparse_impl.cpp",
+ "third_party/icu/source/i18n/numparse_parsednumber.cpp",
+ "third_party/icu/source/i18n/numparse_scientific.cpp",
+ "third_party/icu/source/i18n/numparse_symbols.cpp",
+ "third_party/icu/source/i18n/numparse_validators.cpp",
+ "third_party/icu/source/i18n/numrange_capi.cpp",
+ "third_party/icu/source/i18n/numrange_fluent.cpp",
+ "third_party/icu/source/i18n/numrange_impl.cpp",
+ "third_party/icu/source/i18n/numsys.cpp",
+ "third_party/icu/source/i18n/olsontz.cpp",
+ "third_party/icu/source/i18n/persncal.cpp",
+ "third_party/icu/source/i18n/pluralranges.cpp",
+ "third_party/icu/source/i18n/plurfmt.cpp",
+ "third_party/icu/source/i18n/plurrule.cpp",
+ "third_party/icu/source/i18n/quant.cpp",
+ "third_party/icu/source/i18n/quantityformatter.cpp",
+ "third_party/icu/source/i18n/rbnf.cpp",
+ "third_party/icu/source/i18n/rbt.cpp",
+ "third_party/icu/source/i18n/rbt_data.cpp",
+ "third_party/icu/source/i18n/rbt_pars.cpp",
+ "third_party/icu/source/i18n/rbt_rule.cpp",
+ "third_party/icu/source/i18n/rbt_set.cpp",
+ "third_party/icu/source/i18n/rbtz.cpp",
+ "third_party/icu/source/i18n/regexcmp.cpp",
+ "third_party/icu/source/i18n/regeximp.cpp",
+ "third_party/icu/source/i18n/regexst.cpp",
+ "third_party/icu/source/i18n/regextxt.cpp",
+ "third_party/icu/source/i18n/region.cpp",
+ "third_party/icu/source/i18n/reldatefmt.cpp",
+ "third_party/icu/source/i18n/reldtfmt.cpp",
+ "third_party/icu/source/i18n/rematch.cpp",
+ "third_party/icu/source/i18n/remtrans.cpp",
+ "third_party/icu/source/i18n/repattrn.cpp",
+ "third_party/icu/source/i18n/rulebasedcollator.cpp",
+ "third_party/icu/source/i18n/scientificnumberformatter.cpp",
+ "third_party/icu/source/i18n/scriptset.cpp",
+ "third_party/icu/source/i18n/search.cpp",
+ "third_party/icu/source/i18n/selfmt.cpp",
+ "third_party/icu/source/i18n/sharedbreakiterator.cpp",
+ "third_party/icu/source/i18n/simpletz.cpp",
+ "third_party/icu/source/i18n/smpdtfmt.cpp",
+ "third_party/icu/source/i18n/smpdtfst.cpp",
+ "third_party/icu/source/i18n/sortkey.cpp",
+ "third_party/icu/source/i18n/standardplural.cpp",
+ "third_party/icu/source/i18n/string_segment.cpp",
+ "third_party/icu/source/i18n/strmatch.cpp",
+ "third_party/icu/source/i18n/strrepl.cpp",
+ "third_party/icu/source/i18n/stsearch.cpp",
+ "third_party/icu/source/i18n/taiwncal.cpp",
+ "third_party/icu/source/i18n/timezone.cpp",
+ "third_party/icu/source/i18n/titletrn.cpp",
+ "third_party/icu/source/i18n/tmunit.cpp",
+ "third_party/icu/source/i18n/tmutamt.cpp",
+ "third_party/icu/source/i18n/tmutfmt.cpp",
+ "third_party/icu/source/i18n/tolowtrn.cpp",
+ "third_party/icu/source/i18n/toupptrn.cpp",
+ "third_party/icu/source/i18n/translit.cpp",
+ "third_party/icu/source/i18n/transreg.cpp",
+ "third_party/icu/source/i18n/tridpars.cpp",
+ "third_party/icu/source/i18n/tzfmt.cpp",
+ "third_party/icu/source/i18n/tzgnames.cpp",
+ "third_party/icu/source/i18n/tznames.cpp",
+ "third_party/icu/source/i18n/tznames_impl.cpp",
+ "third_party/icu/source/i18n/tzrule.cpp",
+ "third_party/icu/source/i18n/tztrans.cpp",
+ "third_party/icu/source/i18n/ucal.cpp",
+ "third_party/icu/source/i18n/ucln_in.cpp",
+ "third_party/icu/source/i18n/ucol.cpp",
+ "third_party/icu/source/i18n/ucol_res.cpp",
+ "third_party/icu/source/i18n/ucol_sit.cpp",
+ "third_party/icu/source/i18n/ucoleitr.cpp",
+ "third_party/icu/source/i18n/ucsdet.cpp",
+ "third_party/icu/source/i18n/udat.cpp",
+ "third_party/icu/source/i18n/udateintervalformat.cpp",
+ "third_party/icu/source/i18n/udatpg.cpp",
+ "third_party/icu/source/i18n/ufieldpositer.cpp",
+ "third_party/icu/source/i18n/uitercollationiterator.cpp",
+ "third_party/icu/source/i18n/ulistformatter.cpp",
+ "third_party/icu/source/i18n/ulocdata.cpp",
+ "third_party/icu/source/i18n/umsg.cpp",
+ "third_party/icu/source/i18n/unesctrn.cpp",
+ "third_party/icu/source/i18n/uni2name.cpp",
+ "third_party/icu/source/i18n/units_complexconverter.cpp",
+ "third_party/icu/source/i18n/units_converter.cpp",
+ "third_party/icu/source/i18n/units_data.cpp",
+ "third_party/icu/source/i18n/units_router.cpp",
+ "third_party/icu/source/i18n/unum.cpp",
+ "third_party/icu/source/i18n/unumsys.cpp",
+ "third_party/icu/source/i18n/upluralrules.cpp",
+ "third_party/icu/source/i18n/uregex.cpp",
+ "third_party/icu/source/i18n/uregexc.cpp",
+ "third_party/icu/source/i18n/uregion.cpp",
+ "third_party/icu/source/i18n/usearch.cpp",
+ "third_party/icu/source/i18n/uspoof.cpp",
+ "third_party/icu/source/i18n/uspoof_build.cpp",
+ "third_party/icu/source/i18n/uspoof_conf.cpp",
+ "third_party/icu/source/i18n/uspoof_impl.cpp",
+ "third_party/icu/source/i18n/utf16collationiterator.cpp",
+ "third_party/icu/source/i18n/utf8collationiterator.cpp",
+ "third_party/icu/source/i18n/utmscale.cpp",
+ "third_party/icu/source/i18n/utrans.cpp",
+ "third_party/icu/source/i18n/vtzone.cpp",
+ "third_party/icu/source/i18n/vzone.cpp",
+ "third_party/icu/source/i18n/windtfmt.cpp",
+ "third_party/icu/source/i18n/winnmfmt.cpp",
+ "third_party/icu/source/i18n/wintzimpl.cpp",
+ "third_party/icu/source/i18n/zonemeta.cpp",
+ "third_party/icu/source/i18n/zrule.cpp",
+ "third_party/icu/source/i18n/ztrans.cpp",
+ ],
static_libs: [
"cronet_aml_third_party_icu_icuuc_private",
],
@@ -4928,6 +6240,7 @@
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
cpp_std: "c++20",
+ rtti: true,
}
// GN: //third_party/icu:icuuc_private
@@ -4935,6 +6248,205 @@
name: "cronet_aml_third_party_icu_icuuc_private",
srcs: [
":cronet_aml_third_party_icu_icuuc_public",
+ "third_party/icu/source/common/appendable.cpp",
+ "third_party/icu/source/common/bmpset.cpp",
+ "third_party/icu/source/common/brkeng.cpp",
+ "third_party/icu/source/common/brkiter.cpp",
+ "third_party/icu/source/common/bytesinkutil.cpp",
+ "third_party/icu/source/common/bytestream.cpp",
+ "third_party/icu/source/common/bytestrie.cpp",
+ "third_party/icu/source/common/bytestriebuilder.cpp",
+ "third_party/icu/source/common/bytestrieiterator.cpp",
+ "third_party/icu/source/common/caniter.cpp",
+ "third_party/icu/source/common/characterproperties.cpp",
+ "third_party/icu/source/common/chariter.cpp",
+ "third_party/icu/source/common/charstr.cpp",
+ "third_party/icu/source/common/cmemory.cpp",
+ "third_party/icu/source/common/cstr.cpp",
+ "third_party/icu/source/common/cstring.cpp",
+ "third_party/icu/source/common/cwchar.cpp",
+ "third_party/icu/source/common/dictbe.cpp",
+ "third_party/icu/source/common/dictionarydata.cpp",
+ "third_party/icu/source/common/dtintrv.cpp",
+ "third_party/icu/source/common/edits.cpp",
+ "third_party/icu/source/common/emojiprops.cpp",
+ "third_party/icu/source/common/errorcode.cpp",
+ "third_party/icu/source/common/filteredbrk.cpp",
+ "third_party/icu/source/common/filterednormalizer2.cpp",
+ "third_party/icu/source/common/icudataver.cpp",
+ "third_party/icu/source/common/icuplug.cpp",
+ "third_party/icu/source/common/loadednormalizer2impl.cpp",
+ "third_party/icu/source/common/localebuilder.cpp",
+ "third_party/icu/source/common/localematcher.cpp",
+ "third_party/icu/source/common/localeprioritylist.cpp",
+ "third_party/icu/source/common/locavailable.cpp",
+ "third_party/icu/source/common/locbased.cpp",
+ "third_party/icu/source/common/locdispnames.cpp",
+ "third_party/icu/source/common/locdistance.cpp",
+ "third_party/icu/source/common/locdspnm.cpp",
+ "third_party/icu/source/common/locid.cpp",
+ "third_party/icu/source/common/loclikely.cpp",
+ "third_party/icu/source/common/loclikelysubtags.cpp",
+ "third_party/icu/source/common/locmap.cpp",
+ "third_party/icu/source/common/locresdata.cpp",
+ "third_party/icu/source/common/locutil.cpp",
+ "third_party/icu/source/common/lsr.cpp",
+ "third_party/icu/source/common/lstmbe.cpp",
+ "third_party/icu/source/common/messagepattern.cpp",
+ "third_party/icu/source/common/normalizer2.cpp",
+ "third_party/icu/source/common/normalizer2impl.cpp",
+ "third_party/icu/source/common/normlzr.cpp",
+ "third_party/icu/source/common/parsepos.cpp",
+ "third_party/icu/source/common/patternprops.cpp",
+ "third_party/icu/source/common/pluralmap.cpp",
+ "third_party/icu/source/common/propname.cpp",
+ "third_party/icu/source/common/propsvec.cpp",
+ "third_party/icu/source/common/punycode.cpp",
+ "third_party/icu/source/common/putil.cpp",
+ "third_party/icu/source/common/rbbi.cpp",
+ "third_party/icu/source/common/rbbi_cache.cpp",
+ "third_party/icu/source/common/rbbidata.cpp",
+ "third_party/icu/source/common/rbbinode.cpp",
+ "third_party/icu/source/common/rbbirb.cpp",
+ "third_party/icu/source/common/rbbiscan.cpp",
+ "third_party/icu/source/common/rbbisetb.cpp",
+ "third_party/icu/source/common/rbbistbl.cpp",
+ "third_party/icu/source/common/rbbitblb.cpp",
+ "third_party/icu/source/common/resbund.cpp",
+ "third_party/icu/source/common/resbund_cnv.cpp",
+ "third_party/icu/source/common/resource.cpp",
+ "third_party/icu/source/common/restrace.cpp",
+ "third_party/icu/source/common/ruleiter.cpp",
+ "third_party/icu/source/common/schriter.cpp",
+ "third_party/icu/source/common/serv.cpp",
+ "third_party/icu/source/common/servlk.cpp",
+ "third_party/icu/source/common/servlkf.cpp",
+ "third_party/icu/source/common/servls.cpp",
+ "third_party/icu/source/common/servnotf.cpp",
+ "third_party/icu/source/common/servrbf.cpp",
+ "third_party/icu/source/common/servslkf.cpp",
+ "third_party/icu/source/common/sharedobject.cpp",
+ "third_party/icu/source/common/simpleformatter.cpp",
+ "third_party/icu/source/common/static_unicode_sets.cpp",
+ "third_party/icu/source/common/stringpiece.cpp",
+ "third_party/icu/source/common/stringtriebuilder.cpp",
+ "third_party/icu/source/common/uarrsort.cpp",
+ "third_party/icu/source/common/ubidi.cpp",
+ "third_party/icu/source/common/ubidi_props.cpp",
+ "third_party/icu/source/common/ubidiln.cpp",
+ "third_party/icu/source/common/ubiditransform.cpp",
+ "third_party/icu/source/common/ubidiwrt.cpp",
+ "third_party/icu/source/common/ubrk.cpp",
+ "third_party/icu/source/common/ucase.cpp",
+ "third_party/icu/source/common/ucasemap.cpp",
+ "third_party/icu/source/common/ucasemap_titlecase_brkiter.cpp",
+ "third_party/icu/source/common/ucat.cpp",
+ "third_party/icu/source/common/uchar.cpp",
+ "third_party/icu/source/common/ucharstrie.cpp",
+ "third_party/icu/source/common/ucharstriebuilder.cpp",
+ "third_party/icu/source/common/ucharstrieiterator.cpp",
+ "third_party/icu/source/common/uchriter.cpp",
+ "third_party/icu/source/common/ucln_cmn.cpp",
+ "third_party/icu/source/common/ucmndata.cpp",
+ "third_party/icu/source/common/ucnv.cpp",
+ "third_party/icu/source/common/ucnv2022.cpp",
+ "third_party/icu/source/common/ucnv_bld.cpp",
+ "third_party/icu/source/common/ucnv_cb.cpp",
+ "third_party/icu/source/common/ucnv_cnv.cpp",
+ "third_party/icu/source/common/ucnv_ct.cpp",
+ "third_party/icu/source/common/ucnv_err.cpp",
+ "third_party/icu/source/common/ucnv_ext.cpp",
+ "third_party/icu/source/common/ucnv_io.cpp",
+ "third_party/icu/source/common/ucnv_lmb.cpp",
+ "third_party/icu/source/common/ucnv_set.cpp",
+ "third_party/icu/source/common/ucnv_u16.cpp",
+ "third_party/icu/source/common/ucnv_u32.cpp",
+ "third_party/icu/source/common/ucnv_u7.cpp",
+ "third_party/icu/source/common/ucnv_u8.cpp",
+ "third_party/icu/source/common/ucnvbocu.cpp",
+ "third_party/icu/source/common/ucnvdisp.cpp",
+ "third_party/icu/source/common/ucnvhz.cpp",
+ "third_party/icu/source/common/ucnvisci.cpp",
+ "third_party/icu/source/common/ucnvlat1.cpp",
+ "third_party/icu/source/common/ucnvmbcs.cpp",
+ "third_party/icu/source/common/ucnvscsu.cpp",
+ "third_party/icu/source/common/ucnvsel.cpp",
+ "third_party/icu/source/common/ucol_swp.cpp",
+ "third_party/icu/source/common/ucptrie.cpp",
+ "third_party/icu/source/common/ucurr.cpp",
+ "third_party/icu/source/common/udata.cpp",
+ "third_party/icu/source/common/udatamem.cpp",
+ "third_party/icu/source/common/udataswp.cpp",
+ "third_party/icu/source/common/uenum.cpp",
+ "third_party/icu/source/common/uhash.cpp",
+ "third_party/icu/source/common/uhash_us.cpp",
+ "third_party/icu/source/common/uidna.cpp",
+ "third_party/icu/source/common/uinit.cpp",
+ "third_party/icu/source/common/uinvchar.cpp",
+ "third_party/icu/source/common/uiter.cpp",
+ "third_party/icu/source/common/ulist.cpp",
+ "third_party/icu/source/common/uloc.cpp",
+ "third_party/icu/source/common/uloc_keytype.cpp",
+ "third_party/icu/source/common/uloc_tag.cpp",
+ "third_party/icu/source/common/umapfile.cpp",
+ "third_party/icu/source/common/umath.cpp",
+ "third_party/icu/source/common/umutablecptrie.cpp",
+ "third_party/icu/source/common/umutex.cpp",
+ "third_party/icu/source/common/unames.cpp",
+ "third_party/icu/source/common/unifiedcache.cpp",
+ "third_party/icu/source/common/unifilt.cpp",
+ "third_party/icu/source/common/unifunct.cpp",
+ "third_party/icu/source/common/uniset.cpp",
+ "third_party/icu/source/common/uniset_closure.cpp",
+ "third_party/icu/source/common/uniset_props.cpp",
+ "third_party/icu/source/common/unisetspan.cpp",
+ "third_party/icu/source/common/unistr.cpp",
+ "third_party/icu/source/common/unistr_case.cpp",
+ "third_party/icu/source/common/unistr_case_locale.cpp",
+ "third_party/icu/source/common/unistr_cnv.cpp",
+ "third_party/icu/source/common/unistr_props.cpp",
+ "third_party/icu/source/common/unistr_titlecase_brkiter.cpp",
+ "third_party/icu/source/common/unorm.cpp",
+ "third_party/icu/source/common/unormcmp.cpp",
+ "third_party/icu/source/common/uobject.cpp",
+ "third_party/icu/source/common/uprops.cpp",
+ "third_party/icu/source/common/ures_cnv.cpp",
+ "third_party/icu/source/common/uresbund.cpp",
+ "third_party/icu/source/common/uresdata.cpp",
+ "third_party/icu/source/common/usc_impl.cpp",
+ "third_party/icu/source/common/uscript.cpp",
+ "third_party/icu/source/common/uscript_props.cpp",
+ "third_party/icu/source/common/uset.cpp",
+ "third_party/icu/source/common/uset_props.cpp",
+ "third_party/icu/source/common/usetiter.cpp",
+ "third_party/icu/source/common/ushape.cpp",
+ "third_party/icu/source/common/usprep.cpp",
+ "third_party/icu/source/common/ustack.cpp",
+ "third_party/icu/source/common/ustr_cnv.cpp",
+ "third_party/icu/source/common/ustr_titlecase_brkiter.cpp",
+ "third_party/icu/source/common/ustr_wcs.cpp",
+ "third_party/icu/source/common/ustrcase.cpp",
+ "third_party/icu/source/common/ustrcase_locale.cpp",
+ "third_party/icu/source/common/ustrenum.cpp",
+ "third_party/icu/source/common/ustrfmt.cpp",
+ "third_party/icu/source/common/ustring.cpp",
+ "third_party/icu/source/common/ustrtrns.cpp",
+ "third_party/icu/source/common/utext.cpp",
+ "third_party/icu/source/common/utf_impl.cpp",
+ "third_party/icu/source/common/util.cpp",
+ "third_party/icu/source/common/util_props.cpp",
+ "third_party/icu/source/common/utrace.cpp",
+ "third_party/icu/source/common/utrie.cpp",
+ "third_party/icu/source/common/utrie2.cpp",
+ "third_party/icu/source/common/utrie2_builder.cpp",
+ "third_party/icu/source/common/utrie_swap.cpp",
+ "third_party/icu/source/common/uts46.cpp",
+ "third_party/icu/source/common/utypes.cpp",
+ "third_party/icu/source/common/uvector.cpp",
+ "third_party/icu/source/common/uvectr32.cpp",
+ "third_party/icu/source/common/uvectr64.cpp",
+ "third_party/icu/source/common/wintz.cpp",
+ "third_party/icu/source/stubdata/stubdata.cpp",
],
defaults: [
"cronet_aml_defaults",
@@ -4979,6 +6491,7 @@
"third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
],
cpp_std: "c++20",
+ rtti: true,
}
// GN: //third_party/icu:icuuc_public
@@ -5035,6 +6548,145 @@
cpp_std: "c++20",
}
+// GN: //third_party/metrics_proto:metrics_proto
+genrule {
+ name: "cronet_aml_third_party_metrics_proto_metrics_proto_gen",
+ srcs: [
+ "third_party/metrics_proto/call_stack_profile.proto",
+ "third_party/metrics_proto/cast_logs.proto",
+ "third_party/metrics_proto/chrome_os_app_list_launch_event.proto",
+ "third_party/metrics_proto/chrome_searchbox_stats.proto",
+ "third_party/metrics_proto/chrome_user_metrics_extension.proto",
+ "third_party/metrics_proto/custom_tab_session.proto",
+ "third_party/metrics_proto/execution_context.proto",
+ "third_party/metrics_proto/extension_install.proto",
+ "third_party/metrics_proto/histogram_event.proto",
+ "third_party/metrics_proto/omnibox_event.proto",
+ "third_party/metrics_proto/omnibox_focus_type.proto",
+ "third_party/metrics_proto/omnibox_input_type.proto",
+ "third_party/metrics_proto/perf_data.proto",
+ "third_party/metrics_proto/perf_stat.proto",
+ "third_party/metrics_proto/printer_event.proto",
+ "third_party/metrics_proto/reporting_info.proto",
+ "third_party/metrics_proto/sampled_profile.proto",
+ "third_party/metrics_proto/structured_data.proto",
+ "third_party/metrics_proto/system_profile.proto",
+ "third_party/metrics_proto/trace_log.proto",
+ "third_party/metrics_proto/translate_event.proto",
+ "third_party/metrics_proto/ukm/aggregate.proto",
+ "third_party/metrics_proto/ukm/entry.proto",
+ "third_party/metrics_proto/ukm/report.proto",
+ "third_party/metrics_proto/ukm/source.proto",
+ "third_party/metrics_proto/user_action_event.proto",
+ "third_party/metrics_proto/user_demographics.proto",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/third_party/metrics_proto --cpp_out=lite=true:$(genDir)/external/chromium_org/third_party/metrics_proto/ $(in)",
+ out: [
+ "external/chromium_org/third_party/metrics_proto/call_stack_profile.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/cast_logs.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/chrome_os_app_list_launch_event.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/chrome_searchbox_stats.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/chrome_user_metrics_extension.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/custom_tab_session.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/execution_context.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/extension_install.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/histogram_event.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/omnibox_event.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/omnibox_focus_type.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/omnibox_input_type.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/perf_data.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/perf_stat.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/printer_event.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/reporting_info.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/sampled_profile.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/structured_data.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/system_profile.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/trace_log.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/translate_event.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/ukm/aggregate.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/ukm/entry.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/ukm/report.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/ukm/source.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/user_action_event.pb.cc",
+ "external/chromium_org/third_party/metrics_proto/user_demographics.pb.cc",
+ ],
+}
+
+// GN: //third_party/metrics_proto:metrics_proto
+genrule {
+ name: "cronet_aml_third_party_metrics_proto_metrics_proto_gen_headers",
+ srcs: [
+ "third_party/metrics_proto/call_stack_profile.proto",
+ "third_party/metrics_proto/cast_logs.proto",
+ "third_party/metrics_proto/chrome_os_app_list_launch_event.proto",
+ "third_party/metrics_proto/chrome_searchbox_stats.proto",
+ "third_party/metrics_proto/chrome_user_metrics_extension.proto",
+ "third_party/metrics_proto/custom_tab_session.proto",
+ "third_party/metrics_proto/execution_context.proto",
+ "third_party/metrics_proto/extension_install.proto",
+ "third_party/metrics_proto/histogram_event.proto",
+ "third_party/metrics_proto/omnibox_event.proto",
+ "third_party/metrics_proto/omnibox_focus_type.proto",
+ "third_party/metrics_proto/omnibox_input_type.proto",
+ "third_party/metrics_proto/perf_data.proto",
+ "third_party/metrics_proto/perf_stat.proto",
+ "third_party/metrics_proto/printer_event.proto",
+ "third_party/metrics_proto/reporting_info.proto",
+ "third_party/metrics_proto/sampled_profile.proto",
+ "third_party/metrics_proto/structured_data.proto",
+ "third_party/metrics_proto/system_profile.proto",
+ "third_party/metrics_proto/trace_log.proto",
+ "third_party/metrics_proto/translate_event.proto",
+ "third_party/metrics_proto/ukm/aggregate.proto",
+ "third_party/metrics_proto/ukm/entry.proto",
+ "third_party/metrics_proto/ukm/report.proto",
+ "third_party/metrics_proto/ukm/source.proto",
+ "third_party/metrics_proto/user_action_event.proto",
+ "third_party/metrics_proto/user_demographics.proto",
+ ],
+ tools: [
+ "aprotoc",
+ ],
+ cmd: "$(location aprotoc) --proto_path=external/chromium_org/third_party/metrics_proto --cpp_out=lite=true:$(genDir)/external/chromium_org/third_party/metrics_proto/ $(in)",
+ out: [
+ "external/chromium_org/third_party/metrics_proto/call_stack_profile.pb.h",
+ "external/chromium_org/third_party/metrics_proto/cast_logs.pb.h",
+ "external/chromium_org/third_party/metrics_proto/chrome_os_app_list_launch_event.pb.h",
+ "external/chromium_org/third_party/metrics_proto/chrome_searchbox_stats.pb.h",
+ "external/chromium_org/third_party/metrics_proto/chrome_user_metrics_extension.pb.h",
+ "external/chromium_org/third_party/metrics_proto/custom_tab_session.pb.h",
+ "external/chromium_org/third_party/metrics_proto/execution_context.pb.h",
+ "external/chromium_org/third_party/metrics_proto/extension_install.pb.h",
+ "external/chromium_org/third_party/metrics_proto/histogram_event.pb.h",
+ "external/chromium_org/third_party/metrics_proto/omnibox_event.pb.h",
+ "external/chromium_org/third_party/metrics_proto/omnibox_focus_type.pb.h",
+ "external/chromium_org/third_party/metrics_proto/omnibox_input_type.pb.h",
+ "external/chromium_org/third_party/metrics_proto/perf_data.pb.h",
+ "external/chromium_org/third_party/metrics_proto/perf_stat.pb.h",
+ "external/chromium_org/third_party/metrics_proto/printer_event.pb.h",
+ "external/chromium_org/third_party/metrics_proto/reporting_info.pb.h",
+ "external/chromium_org/third_party/metrics_proto/sampled_profile.pb.h",
+ "external/chromium_org/third_party/metrics_proto/structured_data.pb.h",
+ "external/chromium_org/third_party/metrics_proto/system_profile.pb.h",
+ "external/chromium_org/third_party/metrics_proto/trace_log.pb.h",
+ "external/chromium_org/third_party/metrics_proto/translate_event.pb.h",
+ "external/chromium_org/third_party/metrics_proto/ukm/aggregate.pb.h",
+ "external/chromium_org/third_party/metrics_proto/ukm/entry.pb.h",
+ "external/chromium_org/third_party/metrics_proto/ukm/report.pb.h",
+ "external/chromium_org/third_party/metrics_proto/ukm/source.pb.h",
+ "external/chromium_org/third_party/metrics_proto/user_action_event.pb.h",
+ "external/chromium_org/third_party/metrics_proto/user_demographics.pb.h",
+ ],
+ export_include_dirs: [
+ ".",
+ "protos",
+ "third_party/metrics_proto",
+ ],
+}
+
// GN: //third_party/modp_b64:modp_b64
cc_library_static {
name: "cronet_aml_third_party_modp_b64_modp_b64",
@@ -5071,215 +6723,10 @@
cpp_std: "c++20",
}
-// GN: //third_party/protobuf:protobuf_full
-cc_library_static {
- name: "cronet_aml_third_party_protobuf_protobuf_full",
- srcs: [
- "third_party/protobuf/src/google/protobuf/any.cc",
- "third_party/protobuf/src/google/protobuf/any.pb.cc",
- "third_party/protobuf/src/google/protobuf/any_lite.cc",
- "third_party/protobuf/src/google/protobuf/api.pb.cc",
- "third_party/protobuf/src/google/protobuf/arena.cc",
- "third_party/protobuf/src/google/protobuf/arenastring.cc",
- "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
- "third_party/protobuf/src/google/protobuf/compiler/importer.cc",
- "third_party/protobuf/src/google/protobuf/compiler/parser.cc",
- "third_party/protobuf/src/google/protobuf/descriptor.cc",
- "third_party/protobuf/src/google/protobuf/descriptor.pb.cc",
- "third_party/protobuf/src/google/protobuf/descriptor_database.cc",
- "third_party/protobuf/src/google/protobuf/duration.pb.cc",
- "third_party/protobuf/src/google/protobuf/dynamic_message.cc",
- "third_party/protobuf/src/google/protobuf/empty.pb.cc",
- "third_party/protobuf/src/google/protobuf/extension_set.cc",
- "third_party/protobuf/src/google/protobuf/extension_set_heavy.cc",
- "third_party/protobuf/src/google/protobuf/field_mask.pb.cc",
- "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_bases.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_reflection.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_tctable_full.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
- "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
- "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
- "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
- "third_party/protobuf/src/google/protobuf/io/gzip_stream.cc",
- "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
- "third_party/protobuf/src/google/protobuf/io/printer.cc",
- "third_party/protobuf/src/google/protobuf/io/strtod.cc",
- "third_party/protobuf/src/google/protobuf/io/tokenizer.cc",
- "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
- "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
- "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
- "third_party/protobuf/src/google/protobuf/map.cc",
- "third_party/protobuf/src/google/protobuf/map_field.cc",
- "third_party/protobuf/src/google/protobuf/message.cc",
- "third_party/protobuf/src/google/protobuf/message_lite.cc",
- "third_party/protobuf/src/google/protobuf/parse_context.cc",
- "third_party/protobuf/src/google/protobuf/reflection_ops.cc",
- "third_party/protobuf/src/google/protobuf/repeated_field.cc",
- "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
- "third_party/protobuf/src/google/protobuf/service.cc",
- "third_party/protobuf/src/google/protobuf/source_context.pb.cc",
- "third_party/protobuf/src/google/protobuf/struct.pb.cc",
- "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
- "third_party/protobuf/src/google/protobuf/stubs/common.cc",
- "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
- "third_party/protobuf/src/google/protobuf/stubs/status.cc",
- "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
- "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
- "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
- "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
- "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
- "third_party/protobuf/src/google/protobuf/stubs/substitute.cc",
- "third_party/protobuf/src/google/protobuf/stubs/time.cc",
- "third_party/protobuf/src/google/protobuf/text_format.cc",
- "third_party/protobuf/src/google/protobuf/timestamp.pb.cc",
- "third_party/protobuf/src/google/protobuf/type.pb.cc",
- "third_party/protobuf/src/google/protobuf/unknown_field_set.cc",
- "third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc",
- "third_party/protobuf/src/google/protobuf/util/field_comparator.cc",
- "third_party/protobuf/src/google/protobuf/util/field_mask_util.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/type_info.cc",
- "third_party/protobuf/src/google/protobuf/util/internal/utility.cc",
- "third_party/protobuf/src/google/protobuf/util/json_util.cc",
- "third_party/protobuf/src/google/protobuf/util/message_differencer.cc",
- "third_party/protobuf/src/google/protobuf/util/time_util.cc",
- "third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc",
- "third_party/protobuf/src/google/protobuf/wire_format.cc",
- "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
- "third_party/protobuf/src/google/protobuf/wrappers.pb.cc",
- ],
- static_libs: [
- "cronet_aml_third_party_zlib_zlib",
- ],
- defaults: [
- "cronet_aml_defaults",
- ],
- cflags: [
- "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
- "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
- "-DCR_SYSROOT_KEY=20220331T153654Z-0",
- "-DDCHECK_ALWAYS_ON=1",
- "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
- "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
- "-DGOOGLE_PROTOBUF_NO_RTTI",
- "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
- "-DHAVE_PTHREAD",
- "-DHAVE_ZLIB",
- "-DUSE_AURA=1",
- "-DUSE_OZONE=1",
- "-DUSE_UDEV",
- "-D_DEBUG",
- "-D_FILE_OFFSET_BITS=64",
- "-D_GNU_SOURCE",
- "-D_LARGEFILE64_SOURCE",
- "-D_LARGEFILE_SOURCE",
- "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
- "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
- "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
- "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- ],
- local_include_dirs: [
- "./",
- "buildtools/third_party/libc++/",
- "buildtools/third_party/libc++/trunk/include",
- "buildtools/third_party/libc++abi/trunk/include",
- "third_party/protobuf/src/",
- "third_party/zlib/",
- "build/linux/debian_bullseye_amd64-sysroot/usr/include",
- ],
- cpp_std: "c++20",
-}
-
-// GN: //third_party/protobuf:protobuf_lite
-cc_library_static {
- name: "cronet_aml_third_party_protobuf_protobuf_lite",
- srcs: [
- "third_party/protobuf/src/google/protobuf/any_lite.cc",
- "third_party/protobuf/src/google/protobuf/arena.cc",
- "third_party/protobuf/src/google/protobuf/arenastring.cc",
- "third_party/protobuf/src/google/protobuf/arenaz_sampler.cc",
- "third_party/protobuf/src/google/protobuf/extension_set.cc",
- "third_party/protobuf/src/google/protobuf/generated_enum_util.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
- "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
- "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
- "third_party/protobuf/src/google/protobuf/inlined_string_field.cc",
- "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
- "third_party/protobuf/src/google/protobuf/io/io_win32.cc",
- "third_party/protobuf/src/google/protobuf/io/strtod.cc",
- "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
- "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
- "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
- "third_party/protobuf/src/google/protobuf/map.cc",
- "third_party/protobuf/src/google/protobuf/message_lite.cc",
- "third_party/protobuf/src/google/protobuf/parse_context.cc",
- "third_party/protobuf/src/google/protobuf/repeated_field.cc",
- "third_party/protobuf/src/google/protobuf/repeated_ptr_field.cc",
- "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
- "third_party/protobuf/src/google/protobuf/stubs/common.cc",
- "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
- "third_party/protobuf/src/google/protobuf/stubs/status.cc",
- "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
- "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
- "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
- "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
- "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
- "third_party/protobuf/src/google/protobuf/stubs/time.cc",
- "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
- ],
- shared_libs: [
- "liblog",
- ],
- defaults: [
- "cronet_aml_defaults",
- ],
- cflags: [
- "-DANDROID",
- "-DANDROID_NDK_VERSION_ROLL=r23_1",
- "-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
- "-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
- "-DDCHECK_ALWAYS_ON=1",
- "-DDYNAMIC_ANNOTATIONS_ENABLED=1",
- "-DGOOGLE_PROTOBUF_INTERNAL_DONATE_STEAL_INLINE=0",
- "-DGOOGLE_PROTOBUF_NO_RTTI",
- "-DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
- "-DHAVE_PTHREAD",
- "-DHAVE_SYS_UIO_H",
- "-D_DEBUG",
- "-D_GNU_SOURCE",
- "-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
- "-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
- "-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
- "-D_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS",
- ],
- local_include_dirs: [
- "./",
- "buildtools/third_party/libc++/",
- "buildtools/third_party/libc++/trunk/include",
- "buildtools/third_party/libc++abi/trunk/include",
- "third_party/protobuf/src/",
- "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
- ],
- cpp_std: "c++20",
-}
-
// GN: //third_party/zlib:zlib
cc_library_static {
name: "cronet_aml_third_party_zlib_zlib",
srcs: [
- ":cronet_aml_third_party_android_ndk_cpu_features",
":cronet_aml_third_party_zlib_zlib_adler32_simd",
":cronet_aml_third_party_zlib_zlib_common_headers",
":cronet_aml_third_party_zlib_zlib_crc32_simd",
@@ -5306,22 +6753,26 @@
],
cflags: [
"-DADLER32_SIMD_SSSE3",
- "-DANDROID",
- "-DANDROID_NDK_VERSION_ROLL=r23_1",
"-DCRC32_SIMD_SSE42_PCLMUL",
"-DCR_CLANG_REVISION=\"llvmorg-16-init-8697-g60809cd2-1\"",
"-DCR_LIBCXX_REVISION=47b31179d10646029c260702650a25d24f555acc",
+ "-DCR_SYSROOT_KEY=20220331T153654Z-0",
"-DDCHECK_ALWAYS_ON=1",
"-DDEFLATE_SLIDE_HASH_SSE2",
"-DDYNAMIC_ANNOTATIONS_ENABLED=1",
- "-DHAVE_SYS_UIO_H",
"-DINFLATE_CHUNK_READ_64LE",
"-DINFLATE_CHUNK_SIMD_SSE2",
+ "-DUSE_AURA=1",
+ "-DUSE_OZONE=1",
+ "-DUSE_UDEV",
"-DX86_NOT_WINDOWS",
"-DZLIB_DEBUG",
"-DZLIB_IMPLEMENTATION",
"-D_DEBUG",
+ "-D_FILE_OFFSET_BITS=64",
"-D_GNU_SOURCE",
+ "-D_LARGEFILE64_SOURCE",
+ "-D_LARGEFILE_SOURCE",
"-D_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED=1",
"-D_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS",
"-D_LIBCPP_ENABLE_ASSERTIONS_DEFAULT=1",
@@ -5334,9 +6785,8 @@
"buildtools/third_party/libc++/",
"buildtools/third_party/libc++/trunk/include",
"buildtools/third_party/libc++abi/trunk/include",
- "third_party/android_ndk/sources/android/cpufeatures/",
"third_party/zlib/",
- "third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include",
+ "build/linux/debian_bullseye_amd64-sysroot/usr/include",
],
cpp_std: "c++20",
}
@@ -5377,43 +6827,6 @@
name: "cronet_aml_third_party_zlib_zlib_slide_hash_simd",
}
-// GN: //tools/grit:grit_sources
-genrule {
- name: "cronet_aml_tools_grit_grit_sources",
- cmd: "python $(location tools/grit/stamp_grit_sources.py) `dirname $(location tools/grit/grit.py)` " +
- "$(out) " +
- "$(genDir)/grit_sources.d",
- out: [
- "out/test/obj/tools/grit/grit_sources.script.stamp",
- ],
- tool_files: [
- "tools/grit/grit.py",
- "tools/grit/stamp_grit_sources.py",
- ],
-}
-
-// GN: //tools/gritsettings:default_resource_ids
-genrule {
- name: "cronet_aml_tools_gritsettings_default_resource_ids",
- cmd: "$(location tools/grit/grit.py) update_resource_ids " +
- "-o " +
- "$(location tools/gritsettings/default_resource_ids) " +
- "--add-header " +
- " " +
- " " +
- "--input " +
- "$(location tools/gritsettings/resource_ids.spec)",
- out: [
- "tools/gritsettings/default_resource_ids",
- ],
- tool_files: [
- "third_party/six/src/six.py",
- "tools/grit/**/*.py",
- "tools/grit/grit.py",
- "tools/gritsettings/resource_ids.spec",
- ],
-}
-
// GN: //url:buildflags
genrule {
name: "cronet_aml_url_buildflags",
@@ -5467,8 +6880,17 @@
"liblog",
],
static_libs: [
+ "cronet_aml_base_allocator_partition_allocator_partition_alloc",
"cronet_aml_base_base",
+ "cronet_aml_base_base_static",
+ "cronet_aml_base_third_party_double_conversion_double_conversion",
"cronet_aml_base_third_party_dynamic_annotations_dynamic_annotations",
+ "cronet_aml_third_party_boringssl_boringssl",
+ "cronet_aml_third_party_icu_icui18n",
+ "cronet_aml_third_party_icu_icuuc_private",
+ "cronet_aml_third_party_libevent_libevent",
+ "cronet_aml_third_party_modp_b64_modp_b64",
+ "cronet_aml_third_party_zlib_zlib",
],
generated_headers: [
"cronet_aml_base_debugging_buildflags",
diff --git a/tools/gn2bp/desc.json b/tools/gn2bp/desc.json
index 0c51c3c..5648519 100644
--- a/tools/gn2bp/desc.json
+++ b/tools/gn2bp/desc.json
Binary files differ
diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index 67940af..4bd2479 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -38,6 +38,11 @@
ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+# Default targets to translate to the blueprint file.
+default_targets = [
+ '//components/cronet/android:cronet',
+]
+
# Defines a custom init_rc argument to be applied to the corresponding output
# blueprint target.
target_initrc = {
@@ -84,6 +89,11 @@
'statslog_perfetto',
]
+# Include directories that will be removed from all targets.
+local_include_dirs_denylist = [
+ 'third_party/protobuf/src/',
+]
+
# Name of the module which settings such as compiler flags for all other
# modules.
defaults_module = module_prefix + 'defaults'
@@ -102,8 +112,21 @@
# Additional arguments to apply to Android.bp rules.
additional_args = {
- # TODO: remove if this is not useful for the cronet build.
- # Consider using additional_args for overriding the genrule cmd property for gn actions.
+ # TODO: remove if not needed.
+ 'cronet_aml_components_cronet_android_cronet': [
+ ('linker_scripts', {
+ 'base/android/library_loader/anchor_functions.lds',
+ }),
+ ],
+ 'cronet_aml_net_net': [
+ ('export_static_lib_headers', {
+ 'cronet_aml_net_third_party_quiche_quiche',
+ 'cronet_aml_crypto_crypto',
+ }),
+ # When a code is compiled under rtti(cronet) that depends on another code(net)
+ # that doesn't depend on rtti. undefined symbol: typeinfo 'class' errors appears.
+ ('rtti', True), # go/undefined-symbol-typeinfo
+ ],
}
@@ -120,18 +143,19 @@
elif module.host_supported:
module.host.static_libs.add('libprotobuf-cpp-full')
module.android.shared_libs.add('libprotobuf-cpp-full')
- else:
+ elif module.type not in ['genrule', 'filegroup']:
module.shared_libs.add('libprotobuf-cpp-full')
def enable_protobuf_lite(module):
- module.shared_libs.add('libprotobuf-cpp-lite')
+ if module.type not in ['genrule', 'filegroup']:
+ module.shared_libs.add('libprotobuf-cpp-lite')
def enable_protoc_lib(module):
if module.type == 'cc_binary_host':
module.static_libs.add('libprotoc')
- else:
+ elif module.type not in ['genrule', 'filegroup']:
module.shared_libs.add('libprotoc')
@@ -200,18 +224,10 @@
lambda x: None,
'//gn:gtest_main':
lambda x: None,
- '//gn:protoc':
- lambda x: None,
'//gn:gtest_and_gmock':
enable_gtest_and_gmock,
'//gn:libunwind':
enable_libunwind,
- '//gn:protobuf_full':
- enable_protobuf_full,
- '//gn:protobuf_lite':
- enable_protobuf_lite,
- '//gn:protoc_lib':
- enable_protoc_lib,
'//gn:libunwindstack':
enable_libunwindstack,
'//gn:sqlite':
@@ -224,6 +240,12 @@
enable_bionic_libc_platform_headers_on_android,
'//third_party/protobuf:protoc':
lambda x: None,
+ '//third_party/protobuf:protobuf_full':
+ enable_protobuf_full,
+ '//third_party/protobuf:protobuf_lite':
+ enable_protobuf_lite,
+ '//third_party/protobuf:protoc_lib':
+ enable_protoc_lib,
}
# ----------------------------------------------------------------------------
@@ -336,6 +358,7 @@
self.export_include_dirs = set()
self.generated_headers = set()
self.export_generated_headers = set()
+ self.export_static_lib_headers = set()
self.defaults = set()
self.cflags = set()
self.include_dirs = set()
@@ -353,6 +376,7 @@
self.apex_available = set()
self.min_sdk_version = None
self.proto = dict()
+ self.linker_scripts = set()
# The genrule_XXX below are properties that must to be propagated back
# on the module(s) that depend on the genrule.
self.genrule_headers = set()
@@ -363,6 +387,9 @@
self.test_suites = set()
self.test_config = None
self.stubs = {}
+ self.cppflags = set()
+ self.rtti = False
+ self.arch = dict()
def to_string(self, output):
if self.comment:
@@ -385,6 +412,7 @@
self._output_field(output, 'export_include_dirs')
self._output_field(output, 'generated_headers')
self._output_field(output, 'export_generated_headers')
+ self._output_field(output, 'export_static_lib_headers')
self._output_field(output, 'defaults')
self._output_field(output, 'cflags')
self._output_field(output, 'include_dirs')
@@ -404,6 +432,11 @@
self._output_field(output, 'test_config')
self._output_field(output, 'stubs')
self._output_field(output, 'proto')
+ self._output_field(output, 'linker_scripts')
+ self._output_field(output, 'cppflags')
+ if self.rtti:
+ self._output_field(output, 'rtti')
+ self._output_field(output, 'arch')
target_out = []
self._output_field(target_out, 'android')
@@ -466,6 +499,11 @@
label_without_toolchain = gn_utils.label_without_toolchain(label)
module = re.sub(r'^//:?', '', label_without_toolchain)
module = re.sub(r'[^a-zA-Z0-9_]', '_', module)
+
+ # If it's required to support multi toolchain for more targets, it's better to avoid hardcoding.
+ if label == "//third_party/boringssl:boringssl_asm(//build/toolchain/android:android_clang_x86)":
+ module += "_x86"
+
if not module.startswith(module_prefix):
return module_prefix + module
return module
@@ -473,7 +511,7 @@
def is_supported_source_file(name):
"""Returns True if |name| can appear in a 'srcs' list."""
- return os.path.splitext(name)[1] in ['.c', '.cc', '.java', '.proto']
+ return os.path.splitext(name)[1] in ['.c', '.cc', '.cpp', '.java', '.proto', '.S']
def create_proto_modules(blueprint, gn, target):
@@ -494,13 +532,13 @@
assert (target.type == 'proto_library')
tools = {'aprotoc'}
- cpp_out_dir = '$(genDir)/%s/' % tree_path
+ cpp_out_dir = '$(genDir)/%s/%s/' % (tree_path, target.proto_in_dir)
target_module_name = label_to_module_name(target.name)
# In GN builds the proto path is always relative to the output directory
# (out/tmp.xxx).
- cmd = ['mkdir -p %s &&' % cpp_out_dir, '$(location aprotoc)']
- cmd += ['--proto_path=%s' % tree_path]
+ cmd = ['$(location aprotoc)']
+ cmd += ['--proto_path=%s/%s' % (tree_path, target.proto_in_dir)]
if buildtools_protobuf_src in target.proto_paths:
cmd += ['--proto_path=%s' % android_protobuf_src]
@@ -556,6 +594,10 @@
# to still do the old #include "perfetto/..." rather than
# #include "protos/perfetto/...".
header_module.export_include_dirs = {'.', 'protos'}
+ # Since the .cc file and .h get created by a different gerule target, they
+ # are not put in the same intermediate path, so local includes do not work
+ # without explictily exporting the include dir.
+ header_module.export_include_dirs.add(target.proto_in_dir)
source_module.genrule_srcs.add(':' + source_module.name)
source_module.genrule_headers.add(header_module.name)
@@ -791,6 +833,24 @@
# 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 == '//build/android/gyp/write_build_config.py':
for i, val in enumerate(target.args):
if val == '--depfile':
@@ -887,35 +947,23 @@
filename = re.sub('^\.\./\.\./', '', target.args[i + 1])
# This is an output file so use $(location %s)
target.args[i + 1] = '$(location %s)' % filename
- elif target.script == "//tools/protoc_wrapper/protoc_wrapper.py":
- # Use protoc in the android
- module.tools.add("aprotoc")
- target.outputs = [os.path.basename(out) for out in target.outputs]
+ 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.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 == '--protoc':
- target.args[i + 1] = '$(location aprotoc)'
- elif val == '--proto-in-dir':
- # --proto-in-dir is a relative directory from Android croot.
- # TODO: deleting the leading ../../ is a very common operation -- put
- # it in a function.
- proto_path = re.sub('^\.\./\.\./', '', target.args[i + 1])
- target.args[i + 1] = tree_path + '/' + proto_path
- elif val == '--cc-out-dir':
- target.args[i + 1] = '$(genDir)'
- elif val == 'dllexport_decl':
- # Needs to be dllexport_decl=value format
- target.args[i] = '%s=\'%s\'' % (target.args[i], target.args[i + 1])
- target.args[i+1] = ''
- elif val == '--include':
- # This file can be got from filegroup this target depends on, but currently we don't add .h
- # files to the srcs. So far this is the only case .h files need to be added to the srcs.
- # So, for now, adding specific for this target.
- module.srcs.add(target.args[i+1])
- target.args[i + 1] = '$(location %s)' % target.args[i + 1]
- elif val == "--py-out-dir":
- # pb2.py files are not used by others.
- target.args[i] = ''
- target.args[i + 1] = ''
+ 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)
@@ -943,7 +991,7 @@
# Pipe response file contents into script
module.cmd = 'echo \'%s\' |%s%s' % (target.response_file_contents, NEWLINE, module.cmd)
- if all(os.path.splitext(it)[1] == '.h' for it in target.outputs):
+ 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.
@@ -967,20 +1015,29 @@
elif target.script == "//tools/grit/stamp_grit_sources.py":
# stamp_grit_sources.py is not executable
module.cmd = "python " + module.cmd
- elif target.script == "//tools/protoc_wrapper/protoc_wrapper.py":
- # Split module to source module and header module.
- # Source module has the .cc files and header module has the .h files in the out.
- header_module = copy.deepcopy(module)
- header_module.name += "_headers"
- header_module.out = [file for file in header_module.out if os.path.splitext(file)[1] == '.h']
- module.out = [file for file in module.out if os.path.splitext(file)[1] == '.cc']
- module.genrule_headers.add(header_module.name)
- module.genrule_srcs.add(':' + module.name)
- blueprint.add_module(header_module)
elif 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)
blueprint.add_module(module)
return module
@@ -1052,6 +1109,9 @@
# problem as libicu contains the only copy target which happens to be a
# leaf node.
return None
+ elif target.type == 'java_group':
+ # Java targets are handled outside of create_modules_from_target.
+ return None
else:
raise Error('Unknown target %s (%s)' % (target.name, target.type))
@@ -1072,6 +1132,11 @@
module.cpp_std = flag[len('-std='):]
if '-isystem' in flag:
local_include_dirs_set.add(flag[len('-isystem../../'):])
+ if '-frtti' in flag:
+ module.rtti = True
+ if '-fexceptions' in flag:
+ module.cppflags.add('-fexceptions')
+
# Adding local_include_dirs is necessary due to source_sets / filegroups
# which do not properly propagate include directories.
@@ -1106,29 +1171,20 @@
if lib in static_library_allowlist:
module.add_android_static_lib(android_lib)
+ # Remove prohibited include directories
+ module.local_include_dirs = [d for d in module.local_include_dirs
+ if d not in local_include_dirs_denylist]
+
+
# If the module is a static library, export all the generated headers.
if module.type == 'cc_library_static':
module.export_generated_headers = module.generated_headers
- # Merge in additional hardcoded arguments.
- for key, add_val in additional_args.get(module.name, []):
- curr = getattr(module, key)
- if add_val and isinstance(add_val, set) and isinstance(curr, set):
- curr.update(add_val)
- elif isinstance(add_val, str) and (not curr or isinstance(curr, str)):
- setattr(module, key, add_val)
- elif isinstance(add_val, bool) and (not curr or isinstance(curr, bool)):
- setattr(module, key, add_val)
- elif isinstance(add_val, dict) and isinstance(curr, dict):
- curr.update(add_val)
- elif isinstance(add_val, dict) and isinstance(curr, Target):
- curr.__dict__.update(add_val)
- else:
- raise Error('Unimplemented type %r of additional_args: %r' %
- (type(add_val), key))
-
# dep_name is an unmangled GN target name (e.g. //foo:bar(toolchain)).
- all_deps = target.deps | target.source_set_deps | target.transitive_proto_deps
+ # Currently, only one module is generated from target even target has multiple toolchains.
+ # And module is generated based on the first visited target.
+ # Sort deps before iteration to make result deterministic.
+ all_deps = sorted(target.deps | target.source_set_deps | target.transitive_proto_deps)
for dep_name in all_deps:
# |builtin_deps| override GN deps with Android-specific ones. See the
# config in the top of this file.
@@ -1173,6 +1229,25 @@
raise Error('Unknown dep %s (%s) for target %s' %
(dep_module.name, dep_module.type, module.name))
+ # TODO: support arch difference in generic way
+ # Currently, it is expected that only a couple of modules (e.g. partition_alloc, boringssl)
+ # need arch condition. So, for now, hardcoding arch condition
+ if module.name == "cronet_aml_base_allocator_partition_allocator_partition_alloc":
+ x86_srcs = module.srcs.copy()
+ x86_srcs.remove(
+ "base/allocator/partition_allocator/starscan/stack/asm/x64/push_registers_asm.cc")
+ x86_srcs.add("base/allocator/partition_allocator/starscan/stack/asm/x86/push_registers_asm.cc")
+ module.arch['x86'] = {'srcs': x86_srcs}
+ module.arch['x86_64'] = {'srcs': module.srcs.copy()}
+ module.srcs.clear()
+ elif module.name == "cronet_aml_third_party_boringssl_boringssl":
+ x86_srcs = module.srcs.copy()
+ x86_srcs.remove(":cronet_aml_third_party_boringssl_boringssl_asm")
+ x86_srcs.add(":cronet_aml_third_party_boringssl_boringssl_asm_x86")
+ module.arch['x86'] = {'srcs': x86_srcs}
+ module.arch['x86_64'] = {'srcs': module.srcs.copy()}
+ module.srcs.clear()
+
return module
def create_java_module(blueprint, gn):
@@ -1181,6 +1256,32 @@
module.srcs.update([gn_utils.label_to_path(source) for source in gn.java_sources])
blueprint.add_module(module)
+def update_jni_registration_module(blueprint, gn):
+ bp_module_name = label_to_module_name('//components/cronet/android:cronet_jni_registration')
+ if bp_module_name not in blueprint.modules:
+ # To support building targets that might not create the cronet_jni_registration.
+ return
+ module = blueprint.modules[bp_module_name]
+
+ # TODO: deny list is in the arg of jni_registration_generator.py. Should not be hardcoded
+ deny_list = [
+ '//base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java',
+ '//base/android/java/src/org/chromium/base/library_loader/LibraryPrefetcher.java',
+ '//base/android/java/src/org/chromium/base/process_launcher/ChildProcessService.java',
+ '//base/android/java/src/org/chromium/base/SysUtils.java']
+
+ # 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])
+
+ # TODO: Remove hardcoded file addition to srcs
+ # jni_registration_generator.py generates empty .h file if native methods are not found in the
+ # java files. But android:cronet depends on `RegisterNonMainDexNatives` which is in the template
+ # of .h file. To make script generate non empty .h file, adding java file which contains native
+ # method. Once all the required java files are added to the srcs, this can be removed.
+ module.srcs.update([
+ "components/cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java"])
+
def create_blueprint_for_targets(gn, desc, targets):
"""Generate a blueprint for a list of GN targets."""
blueprint = Blueprint()
@@ -1188,13 +1289,18 @@
# Default settings used by all modules.
defaults = Module('cc_defaults', defaults_module, '//gn:default_deps')
defaults.cflags = [
+ '-DGOOGLE_PROTOBUF_NO_RTTI',
'-Wno-error=return-type',
'-Wno-non-virtual-dtor',
+ '-Wno-macro-redefined',
'-Wno-missing-field-initializers',
'-Wno-sign-compare',
'-Wno-sign-promo',
'-Wno-unused-parameter',
+ '-Wno-deprecated-non-prototype', # needed for zlib
'-fvisibility=hidden',
+ '-Wno-ambiguous-reversed-operator', # needed for icui18n
+ '-Wno-unreachable-code-loop-increment', # needed for icui18n
'-O2',
]
defaults.stl = 'none'
@@ -1203,7 +1309,34 @@
for target in targets:
create_modules_from_target(blueprint, gn, target)
+ # Currently, multi tool chain is not supported for all targets and create_modules_from_target can
+ # not reach to this target by following the dependency.
+ # So it's required to specify explicitly.
+ create_modules_from_target(blueprint, gn,
+ "//third_party/boringssl:boringssl_asm" +
+ "(//build/toolchain/android:android_clang_x86)")
+
create_java_module(blueprint, gn)
+ update_jni_registration_module(blueprint, gn)
+
+ # Merge in additional hardcoded arguments.
+ for module in blueprint.modules.values():
+ for key, add_val in additional_args.get(module.name, []):
+ curr = getattr(module, key)
+ if add_val and isinstance(add_val, set) and isinstance(curr, set):
+ curr.update(add_val)
+ elif isinstance(add_val, str) and (not curr or isinstance(curr, str)):
+ setattr(module, key, add_val)
+ elif isinstance(add_val, bool) and (not curr or isinstance(curr, bool)):
+ setattr(module, key, add_val)
+ elif isinstance(add_val, dict) and isinstance(curr, dict):
+ curr.update(add_val)
+ elif isinstance(add_val, dict) and isinstance(curr, Target):
+ curr.__dict__.update(add_val)
+ else:
+ raise Error('Unimplemented type %r of additional_args: %r' %
+ (type(add_val), key))
+
return blueprint
@@ -1245,7 +1378,7 @@
desc = json.load(f)
gn = gn_utils.GnParser(desc)
- blueprint = create_blueprint_for_targets(gn, desc, args.targets)
+ blueprint = create_blueprint_for_targets(gn, desc, args.targets or default_targets)
project_root = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
tool_name = os.path.relpath(os.path.abspath(__file__), project_root)
diff --git a/tools/gn2bp/gn_utils.py b/tools/gn2bp/gn_utils.py
index 589b12a..118208c 100644
--- a/tools/gn2bp/gn_utils.py
+++ b/tools/gn2bp/gn_utils.py
@@ -110,6 +110,7 @@
self.proto_plugin = None
self.proto_paths = set()
self.proto_exports = set()
+ self.proto_in_dir = ""
self.sources = set()
# TODO(primiano): consider whether the public section should be part of
@@ -134,6 +135,7 @@
self.source_set_deps = set() # Transitive set of source_set deps.
self.proto_deps = set()
self.transitive_proto_deps = set()
+ self.transitive_static_libs_deps = set()
# Deps on //gn:xxx have this flag set to True. These dependencies
# are special because they pull third_party code from buildtools/.
@@ -191,7 +193,7 @@
# Per https://chromium.googlesource.com/chromium/src/build/+/HEAD/android/docs/java_toolchain.md
# java target names must end in "_java".
# TODO: There are some other possible variations we might need to support.
- return re.match('.*_java$', target.name)
+ return target.type == 'group' and re.match('.*_java$', target.name)
def get_target(self, gn_target_name):
@@ -232,6 +234,7 @@
target.proto_plugin = proto_target_type
target.proto_paths.update(self.get_proto_paths(proto_desc))
target.proto_exports.update(self.get_proto_exports(proto_desc))
+ target.proto_in_dir = self.get_proto_in_dir(proto_desc)
target.sources.update(proto_desc.get('sources', []))
assert (all(x.endswith('.proto') for x in target.sources))
elif target.type == 'source_set':
@@ -252,7 +255,7 @@
elif target.type == 'copy':
# TODO: copy rules are not currently implemented.
self.actions[gn_target_name] = target
- elif target.type == 'group' and self._is_java_target(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)
@@ -298,6 +301,16 @@
# java_library.
pass
+ if dep.type == 'static_library':
+ # Bubble up static_libs. Necessary, since soong does not propagate
+ # static_libs up the build tree.
+ # Protobuf dependencies are handled separately.
+ if '//third_party/protobuf' not in dep_name:
+ target.transitive_static_libs_deps.add(dep_name)
+
+ target.transitive_static_libs_deps.update(dep.transitive_static_libs_deps)
+ target.deps.update(target.transitive_static_libs_deps)
+
# Collect java sources. Java sources are kept inside the __compile_java target.
# This target can be used for both host and target compilation; only add
# the sources if they are destined for the target (i.e. they are a
@@ -322,6 +335,11 @@
metadata = proto_desc.get('metadata', {})
return metadata.get('import_dirs', [])
+
+ def get_proto_in_dir(self, proto_desc):
+ args = proto_desc.get('args')
+ return re.sub('^\.\./\.\./', '', args[args.index('--proto-in-dir') + 1])
+
def get_proto_target_type(self, target):
""" Checks if the target is a proto library and return the plugin.
diff --git a/tools/gn2bp/update_results.sh b/tools/gn2bp/update_results.sh
index ad0277c..f9321d9 100755
--- a/tools/gn2bp/update_results.sh
+++ b/tools/gn2bp/update_results.sh
@@ -12,7 +12,7 @@
set -eux
TARGETS=(
- "//net:net"
+ "//components/cronet/android:cronet"
)
BASEDIR=$(dirname "$0")