[Autofill Framework] Add log on how many views are filtered because they
are not in current session
Bug: b/345570331
Test: atest CtsAutoFillServiceTestCases
Change-Id: I058e5e98fbd5df0ee753fe8f8ec39e3798b8092f
diff --git a/services/autofill/java/com/android/server/autofill/PresentationStatsEventLogger.java b/services/autofill/java/com/android/server/autofill/PresentationStatsEventLogger.java
index aa76200..35e5ceb 100644
--- a/services/autofill/java/com/android/server/autofill/PresentationStatsEventLogger.java
+++ b/services/autofill/java/com/android/server/autofill/PresentationStatsEventLogger.java
@@ -641,6 +641,15 @@
}
/**
+ * Set how many views are filtered from fill because they are not in current session
+ */
+ public void maybeSetFilteredFillableViewsCount(int filteredViewsCount) {
+ mEventInternal.ifPresent(event -> {
+ event.mFilteredFillabaleViewCount = filteredViewsCount;
+ });
+ }
+
+ /**
* Set views_filled_failure_count using failure count as long as mEventInternal
* presents.
*/
@@ -728,6 +737,7 @@
+ " mAppPackageUid=" + mCallingAppUid
+ " mIsCredentialRequest=" + event.mIsCredentialRequest
+ " mWebviewRequestedCredential=" + event.mWebviewRequestedCredential
+ + " mFilteredFillabaleViewCount=" + event.mFilteredFillabaleViewCount
+ " mViewFillableTotalCount=" + event.mViewFillableTotalCount
+ " mViewFillFailureCount=" + event.mViewFillFailureCount
+ " mFocusedId=" + event.mFocusedId
@@ -784,6 +794,7 @@
mCallingAppUid,
event.mIsCredentialRequest,
event.mWebviewRequestedCredential,
+ event.mFilteredFillabaleViewCount,
event.mViewFillableTotalCount,
event.mViewFillFailureCount,
event.mFocusedId,
@@ -832,6 +843,7 @@
int mFieldClassificationRequestId = DEFAULT_VALUE_INT;
boolean mIsCredentialRequest = false;
boolean mWebviewRequestedCredential = false;
+ int mFilteredFillabaleViewCount = DEFAULT_VALUE_INT;
int mViewFillableTotalCount = DEFAULT_VALUE_INT;
int mViewFillFailureCount = DEFAULT_VALUE_INT;
int mFocusedId = DEFAULT_VALUE_INT;
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index aa67ffe..54c3886 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -6603,6 +6603,8 @@
boolean waitingDatasetAuth = false;
boolean hideHighlight = (entryCount == 1
&& dataset.getFieldIds().get(0).equals(mCurrentViewId));
+ // Count how many views are filtered because they are not in current session
+ int numOfViewsFiltered = 0;
for (int i = 0; i < entryCount; i++) {
if (dataset.getFieldValues().get(i) == null) {
continue;
@@ -6615,6 +6617,7 @@
Slog.v(TAG, "Skipping filling view: " +
viewId + " as it isn't part of the current session: " + id);
}
+ numOfViewsFiltered += 1;
continue;
}
ids.add(viewId);
@@ -6628,6 +6631,8 @@
viewState.resetState(ViewState.STATE_WAITING_DATASET_AUTH);
}
}
+ mPresentationStatsEventLogger.maybeSetFilteredFillableViewsCount(
+ numOfViewsFiltered);
if (!ids.isEmpty()) {
if (waitingDatasetAuth) {
mUi.hideFillUi(this);