summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/credentials/java/com/android/server/credentials/CreateRequestSession.java2
-rw-r--r--services/credentials/java/com/android/server/credentials/GetRequestSession.java3
-rw-r--r--services/credentials/java/com/android/server/credentials/MetricUtilities.java2
-rw-r--r--services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java3
-rw-r--r--services/credentials/java/com/android/server/credentials/metrics/InitialPhaseMetric.java12
-rw-r--r--services/credentials/java/com/android/server/credentials/metrics/RequestSessionMetric.java19
6 files changed, 37 insertions, 4 deletions
diff --git a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java
index a04143afadcd..4cf14c7f111d 100644
--- a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java
@@ -61,6 +61,8 @@ public final class CreateRequestSession extends RequestSession<CreateCredentialR
super(context, sessionCallback, lock, userId, callingUid, request, callback,
RequestInfo.TYPE_CREATE,
callingAppInfo, enabledProviders, cancellationSignal, startedTimestamp);
+ mRequestSessionMetric.collectCreateFlowInitialMetricInfo(
+ /*origin=*/request.getOrigin() != null);
}
/**
diff --git a/services/credentials/java/com/android/server/credentials/GetRequestSession.java b/services/credentials/java/com/android/server/credentials/GetRequestSession.java
index 208a4be9a70e..e329cec95049 100644
--- a/services/credentials/java/com/android/server/credentials/GetRequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/GetRequestSession.java
@@ -59,7 +59,8 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest,
int numTypes = (request.getCredentialOptions().stream()
.map(CredentialOption::getType).collect(
Collectors.toSet())).size(); // Dedupe type strings
- mRequestSessionMetric.collectGetFlowInitialMetricInfo(numTypes);
+ mRequestSessionMetric.collectGetFlowInitialMetricInfo(numTypes,
+ /*origin=*/request.getOrigin() != null);
}
/**
diff --git a/services/credentials/java/com/android/server/credentials/MetricUtilities.java b/services/credentials/java/com/android/server/credentials/MetricUtilities.java
index 703ab7c7fae8..e25614846896 100644
--- a/services/credentials/java/com/android/server/credentials/MetricUtilities.java
+++ b/services/credentials/java/com/android/server/credentials/MetricUtilities.java
@@ -287,6 +287,8 @@ public class MetricUtilities {
/* count_credential_request_classtypes */
initialPhaseMetric.getCountRequestClassType()
// TODO(b/271135048) - add total count of request options
+ // TODO(b/271135048) - Uncomment once built past PWG review -
+ // initialPhaseMetric.isOriginSpecified()
);
} catch (Exception e) {
Log.w(TAG, "Unexpected error during metric logging: " + e);
diff --git a/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java b/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java
index 9e7a87e74522..1c3d213c8072 100644
--- a/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java
@@ -59,7 +59,8 @@ public class PrepareGetRequestSession extends GetRequestSession {
int numTypes = (request.getCredentialOptions().stream()
.map(CredentialOption::getType).collect(
Collectors.toSet())).size(); // Dedupe type strings
- mRequestSessionMetric.collectGetFlowInitialMetricInfo(numTypes);
+ mRequestSessionMetric.collectGetFlowInitialMetricInfo(numTypes,
+ /*origin=*/request.getOrigin() != null);
mPrepareGetCredentialCallback = prepareGetCredentialCallback;
}
diff --git a/services/credentials/java/com/android/server/credentials/metrics/InitialPhaseMetric.java b/services/credentials/java/com/android/server/credentials/metrics/InitialPhaseMetric.java
index a73495fa384f..0210b14943db 100644
--- a/services/credentials/java/com/android/server/credentials/metrics/InitialPhaseMetric.java
+++ b/services/credentials/java/com/android/server/credentials/metrics/InitialPhaseMetric.java
@@ -42,6 +42,10 @@ public class InitialPhaseMetric {
// over to the next latency object.
private long mCredentialServiceBeginQueryTimeNanoseconds = -1;
+ // Indicates if the origin was specified when making this API request
+ // TODO(b/271135048) - Emit once metrics approved
+ private boolean mOriginSpecified = false;
+
public InitialPhaseMetric() {
}
@@ -115,4 +119,12 @@ public class InitialPhaseMetric {
public int getCountRequestClassType() {
return mCountRequestClassType;
}
+
+ public void setOriginSpecified(boolean originSpecified) {
+ mOriginSpecified = originSpecified;
+ }
+
+ public boolean isOriginSpecified() {
+ return mOriginSpecified;
+ }
}
diff --git a/services/credentials/java/com/android/server/credentials/metrics/RequestSessionMetric.java b/services/credentials/java/com/android/server/credentials/metrics/RequestSessionMetric.java
index 325b7e1731af..10bf56c853f5 100644
--- a/services/credentials/java/com/android/server/credentials/metrics/RequestSessionMetric.java
+++ b/services/credentials/java/com/android/server/credentials/metrics/RequestSessionMetric.java
@@ -149,13 +149,28 @@ public class RequestSessionMetric {
}
/**
- * Collects request class type count in the RequestSession flow.
+ * Collects initializations for Create flow metrics.
+ *
+ * @param origin indicates if an origin was passed in or not
+ */
+ public void collectCreateFlowInitialMetricInfo(boolean origin) {
+ try {
+ mInitialPhaseMetric.setOriginSpecified(origin);
+ } catch (Exception e) {
+ Log.w(TAG, "Unexpected error during metric logging: " + e);
+ }
+ }
+
+ /**
+ * Collects initializations for Get flow metrics.
*
* @param requestClassTypeCount the number of class types in the request
+ * @param origin indicates if an origin was passed in or not
*/
- public void collectGetFlowInitialMetricInfo(int requestClassTypeCount) {
+ public void collectGetFlowInitialMetricInfo(int requestClassTypeCount, boolean origin) {
try {
mInitialPhaseMetric.setCountRequestClassType(requestClassTypeCount);
+ mInitialPhaseMetric.setOriginSpecified(origin);
} catch (Exception e) {
Log.w(TAG, "Unexpected error during metric logging: " + e);
}