Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ca82f42 authored by Tim Yu's avatar Tim Yu Committed by Android (Google) Code Review
Browse files

Merge changes from topic "b/326516222" into main

* changes:
  Autofill add service uid to some logs
  Autofill update latency_save_ui_display_millis
parents 67d0eea4 d308133c
Loading
Loading
Loading
Loading
+27 −17
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ public class SaveEventLogger {

  private final int mSessionId;
  private Optional<SaveEventInternal> mEventInternal;
  private long mSessionStartTimestamp;
  private final long mSessionStartTimestamp;

  private SaveEventLogger(int sessionId, long sessionStartTimestamp) {
      mSessionId = sessionId;
@@ -227,13 +227,11 @@ public class SaveEventLogger {
    });
  }

  /* Returns timestamp (relative to mSessionStartTimestamp) or  UNINITIATED_TIMESTAMP if mSessionStartTimestamp is not set */
  private long getCurrentTimestamp() {
    long timestamp = UNINITIATED_TIMESTAMP;
    if (mSessionStartTimestamp != UNINITIATED_TIMESTAMP) {
      timestamp = SystemClock.elapsedRealtime() - mSessionStartTimestamp;
    }
    return timestamp;
  /**
   * Returns timestamp (relative to mSessionStartTimestamp)
   */
  private long getElapsedTime() {
    return SystemClock.elapsedRealtime() - mSessionStartTimestamp;
  }

  /**
@@ -247,7 +245,7 @@ public class SaveEventLogger {

  /** Set latency_save_ui_display_millis as long as mEventInternal presents. */
  public void maybeSetLatencySaveUiDisplayMillis() {
    maybeSetLatencySaveUiDisplayMillis(getCurrentTimestamp());
    maybeSetLatencySaveUiDisplayMillis(getElapsedTime());
  }

  /**
@@ -261,7 +259,7 @@ public class SaveEventLogger {

  /** Set latency_save_request_millis as long as mEventInternal presents. */
  public void maybeSetLatencySaveRequestMillis() {
    maybeSetLatencySaveRequestMillis(getCurrentTimestamp());
    maybeSetLatencySaveRequestMillis(getElapsedTime());
  }

  /**
@@ -275,7 +273,7 @@ public class SaveEventLogger {

  /** Set latency_save_finish_millis as long as mEventInternal presents. */
  public void maybeSetLatencySaveFinishMillis() {
    maybeSetLatencySaveFinishMillis(getCurrentTimestamp());
    maybeSetLatencySaveFinishMillis(getElapsedTime());
  }

  /**
@@ -287,6 +285,16 @@ public class SaveEventLogger {
    });
  }

  /**
   * Set autofill_service_uid as long as mEventInternal presents.
   */
  public void maybeSetAutofillServiceUid(int uid) {
        mEventInternal.ifPresent(
                event -> {
                    event.mServiceUid = uid;
                });
  }

  /**
   * Log an AUTOFILL_SAVE_EVENT_REPORTED event.
   */
@@ -314,7 +322,8 @@ public class SaveEventLogger {
          + " mLatencySaveUiDisplayMillis=" + event.mLatencySaveUiDisplayMillis
          + " mLatencySaveRequestMillis=" + event.mLatencySaveRequestMillis
          + " mLatencySaveFinishMillis=" + event.mLatencySaveFinishMillis
          + " mIsFrameworkCreatedSaveInfo=" + event.mIsFrameworkCreatedSaveInfo);
          + " mIsFrameworkCreatedSaveInfo=" + event.mIsFrameworkCreatedSaveInfo
          + " mServiceUid=" + event.mServiceUid);
    }
    FrameworkStatsLog.write(
        AUTOFILL_SAVE_EVENT_REPORTED,
@@ -333,7 +342,8 @@ public class SaveEventLogger {
        event.mLatencySaveUiDisplayMillis,
        event.mLatencySaveRequestMillis,
        event.mLatencySaveFinishMillis,
        event.mIsFrameworkCreatedSaveInfo);
        event.mIsFrameworkCreatedSaveInfo,
        event.mServiceUid);
    mEventInternal = Optional.empty();
  }

@@ -349,11 +359,11 @@ public class SaveEventLogger {
    boolean mCancelButtonClicked = false;
    boolean mDialogDismissed = false;
    boolean mIsSaved = false;
    long mLatencySaveUiDisplayMillis = 0;
    long mLatencySaveRequestMillis = 0;
    long mLatencySaveFinishMillis = 0;
    long mLatencySaveUiDisplayMillis = UNINITIATED_TIMESTAMP;
    long mLatencySaveRequestMillis = UNINITIATED_TIMESTAMP;
    long mLatencySaveFinishMillis = UNINITIATED_TIMESTAMP;
    boolean mIsFrameworkCreatedSaveInfo = false;

    int mServiceUid = -1;
    SaveEventInternal() {
    }
  }
+6 −8
Original line number Diff line number Diff line
@@ -1336,8 +1336,11 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        mPresentationStatsEventLogger.maybeSetIsCredentialRequest(isCredmanRequested);
        mPresentationStatsEventLogger.maybeSetFieldClassificationRequestId(
                mFieldClassificationIdSnapshot);
        mPresentationStatsEventLogger.maybeSetAutofillServiceUid(getAutofillServiceUid());
        mFillRequestEventLogger.maybeSetRequestId(requestId);
        mFillRequestEventLogger.maybeSetAutofillServiceUid(getAutofillServiceUid());
        mSaveEventLogger.maybeSetAutofillServiceUid(getAutofillServiceUid());
        mSessionCommittedEventLogger.maybeSetAutofillServiceUid(getAutofillServiceUid());
        if (mSessionFlags.mInlineSupportedByService) {
            mFillRequestEventLogger.maybeSetInlineSuggestionHostUid(mContext, userId);
        }
@@ -2446,9 +2449,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
            mSessionFlags.mShowingSaveUi = false;
            // Log onSaveRequest result.
            mSaveEventLogger.maybeSetIsSaved(true);
            final long saveRequestFinishTimestamp =
                SystemClock.elapsedRealtime() - mLatencyBaseTime;
            mSaveEventLogger.maybeSetLatencySaveFinishMillis(saveRequestFinishTimestamp);
            mSaveEventLogger.maybeSetLatencySaveFinishMillis();
            mSaveEventLogger.logAndEndEvent();
            if (mDestroyed) {
                Slog.w(TAG, "Call to Session#onSaveRequestSuccess() rejected - session: "
@@ -2479,9 +2480,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        synchronized (mLock) {
            mSessionFlags.mShowingSaveUi = false;
            // Log onSaveRequest result.
            final long saveRequestFinishTimestamp =
                SystemClock.elapsedRealtime() - mLatencyBaseTime;
            mSaveEventLogger.maybeSetLatencySaveFinishMillis(saveRequestFinishTimestamp);
            mSaveEventLogger.maybeSetLatencySaveFinishMillis();
            mSaveEventLogger.logAndEndEvent();
            if (mDestroyed) {
                Slog.w(TAG, "Call to Session#onSaveRequestFailure() rejected - session: "
@@ -2627,8 +2626,7 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                return;
            }
        }
        final long saveRequestStartTimestamp = SystemClock.elapsedRealtime() - mLatencyBaseTime;
        mSaveEventLogger.maybeSetLatencySaveRequestMillis(saveRequestStartTimestamp);
        mSaveEventLogger.maybeSetLatencySaveRequestMillis();
        mHandler.sendMessage(obtainMessage(
                AutofillManagerServiceImpl::handleSessionSave,
                mService, this));
+15 −10
Original line number Diff line number Diff line
@@ -17,21 +17,15 @@
package com.android.server.autofill;

import static android.view.autofill.AutofillManager.COMMIT_REASON_UNKNOWN;

import static com.android.internal.util.FrameworkStatsLog.AUTOFILL_SESSION_COMMITTED;
import static com.android.server.autofill.Helper.sVerbose;

import android.annotation.IntDef;
import android.content.ComponentName;
import android.content.Context;
import android.content.pm.PackageManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Slog;
import android.view.autofill.AutofillManager.AutofillCommitReason;

import com.android.internal.util.FrameworkStatsLog;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Optional;

/**
@@ -91,6 +85,14 @@ public final class SessionCommittedEventLogger {
    });
  }

  /** Set autofill_service_uid as long as mEventInternal presents. */
  public void maybeSetAutofillServiceUid(int uid) {
        mEventInternal.ifPresent(
                event -> {
                    event.mServiceUid = uid;
                });
  }

  /**
   * Log an AUTOFILL_SESSION_COMMITTED event.
   */
@@ -106,7 +108,8 @@ public final class SessionCommittedEventLogger {
          + " mComponentPackageUid=" + event.mComponentPackageUid
          + " mRequestCount=" + event.mRequestCount
          + " mCommitReason=" + event.mCommitReason
          + " mSessionDurationMillis=" + event.mSessionDurationMillis);
          + " mSessionDurationMillis=" + event.mSessionDurationMillis
          + " mServiceUid=" + event.mServiceUid);
    }
    FrameworkStatsLog.write(
        AUTOFILL_SESSION_COMMITTED,
@@ -114,7 +117,8 @@ public final class SessionCommittedEventLogger {
        event.mComponentPackageUid,
        event.mRequestCount,
        event.mCommitReason,
        event.mSessionDurationMillis);
        event.mSessionDurationMillis,
        event.mServiceUid);
    mEventInternal = Optional.empty();
  }

@@ -123,6 +127,7 @@ public final class SessionCommittedEventLogger {
    int mRequestCount = 0;
    int mCommitReason = COMMIT_REASON_UNKNOWN;
    long mSessionDurationMillis = 0;
    int mServiceUid = -1;

    SessionCommittedEventInternal() {
    }
+0 −27
Original line number Diff line number Diff line
@@ -55,31 +55,4 @@ public class SaveEventLoggerTest {
        assertThat(latencySaveFinishMillis.getValue())
                .isNotEqualTo(SaveEventLogger.UNINITIATED_TIMESTAMP);
    }

    @Test
    public void testTimestampsNotInitialized() {
        SaveEventLogger mLogger =
                spy(SaveEventLogger.forSessionId(1, SaveEventLogger.UNINITIATED_TIMESTAMP));

        mLogger.maybeSetLatencySaveUiDisplayMillis();
        mLogger.maybeSetLatencySaveRequestMillis();
        mLogger.maybeSetLatencySaveFinishMillis();
        ArgumentCaptor<Long> latencySaveUiDisplayMillis = ArgumentCaptor.forClass(Long.class);
        ArgumentCaptor<Long> latencySaveRequestMillis = ArgumentCaptor.forClass(Long.class);
        ArgumentCaptor<Long> latencySaveFinishMillis = ArgumentCaptor.forClass(Long.class);

        verify(mLogger, times(1))
                .maybeSetLatencySaveUiDisplayMillis(latencySaveUiDisplayMillis.capture());
        verify(mLogger, times(1))
                .maybeSetLatencySaveRequestMillis(latencySaveRequestMillis.capture());
        verify(mLogger, times(1))
                .maybeSetLatencySaveFinishMillis(latencySaveFinishMillis.capture());

        assertThat(latencySaveUiDisplayMillis.getValue())
                .isEqualTo(SaveEventLogger.UNINITIATED_TIMESTAMP);
        assertThat(latencySaveRequestMillis.getValue())
                .isEqualTo(SaveEventLogger.UNINITIATED_TIMESTAMP);
        assertThat(latencySaveFinishMillis.getValue())
                .isEqualTo(SaveEventLogger.UNINITIATED_TIMESTAMP);
    }
}