diff options
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); } |