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

Commit 6f12e67e authored by Felipe Leme's avatar Felipe Leme
Browse files

Minor improvements on Autofill:

- Don't print PII on Dataset.toString()
- Use proper method to get last response

Test: cts-tradefed run commandAndExit cts-dev -m CtsAutoFillServiceTestCases

Bug: 67867469

Change-Id: I41579ba30366e07193ab4f7790e5a107c85d6ec2
parent 24604a3a
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -150,8 +150,16 @@ public final class Dataset implements Parcelable {
    public String toString() {
        if (!sDebug) return super.toString();

        return new StringBuilder("Dataset " + mId + " [")
                .append("fieldIds=").append(mFieldIds)
        final StringBuilder builder = new StringBuilder("Dataset[id=");
        if (mId == null) {
            builder.append("null");
        } else {
            // Cannot disclose id because it could contain PII.
            builder.append(mId.length()).append("_chars");
        }

        return builder
                .append(", fieldIds=").append(mFieldIds)
                .append(", fieldValues=").append(mFieldValues)
                .append(", fieldPresentations=")
                .append(mFieldPresentations == null ? 0 : mFieldPresentations.size())
+5 −0
Original line number Diff line number Diff line
@@ -128,6 +128,11 @@ public final class FillEventHistory implements Parcelable {
        mSessionId = sessionId;
    }

    @Override
    public String toString() {
        return mEvents == null ? "no events" : mEvents.toString();
    }

    @Override
    public int describeContents() {
        return 0;
+3 −3
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ public final class FillResponse implements Parcelable {
    private FillResponse(@NonNull Builder builder) {
        mDatasets = (builder.mDatasets != null) ? new ParceledListSlice<>(builder.mDatasets) : null;
        mSaveInfo = builder.mSaveInfo;
        mClientState = builder.mCLientState;
        mClientState = builder.mClientState;
        mPresentation = builder.mPresentation;
        mAuthentication = builder.mAuthentication;
        mAuthenticationIds = builder.mAuthenticationIds;
@@ -145,7 +145,7 @@ public final class FillResponse implements Parcelable {
    public static final class Builder {
        private ArrayList<Dataset> mDatasets;
        private SaveInfo mSaveInfo;
        private Bundle mCLientState;
        private Bundle mClientState;
        private RemoteViews mPresentation;
        private IntentSender mAuthentication;
        private AutofillId[] mAuthenticationIds;
@@ -288,7 +288,7 @@ public final class FillResponse implements Parcelable {
         */
        public Builder setClientState(@Nullable Bundle clientState) {
            throwIfDestroyed();
            mCLientState = clientState;
            mClientState = clientState;
            return this;
        }

+7 −14
Original line number Diff line number Diff line
@@ -846,12 +846,9 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
     * when necessary.
     */
    public void logContextCommittedLocked() {
        if (mResponses == null) {
            if (sVerbose) Slog.v(TAG, "logContextCommittedLocked(): skipped (no responses)");
            return;
        }
        final FillResponse lastResponse = getLastResponseLocked("logContextCommited()");
        if (lastResponse == null) return;

        final FillResponse lastResponse = mResponses.valueAt(mResponses.size() -1);
        final int flags = lastResponse.getFlags();
        if ((flags & FillResponse.FLAG_TRACK_CONTEXT_COMMITED) == 0) {
            if (sDebug) Slog.d(TAG, "logContextCommittedLocked(): ignored by flags " + flags);
@@ -1599,11 +1596,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
     * Checks whether a view should be ignored.
     */
    private boolean isIgnoredLocked(AutofillId id) {
        if (mResponses == null || mResponses.size() == 0) {
            return false;
        }
        // Always check the latest response only
        final FillResponse response = mResponses.valueAt(mResponses.size() - 1);
        final FillResponse response = getLastResponseLocked(null);
        if (response == null) return false;

        return ArrayUtils.contains(response.getIgnoredIds(), id);
    }

@@ -1680,13 +1676,10 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
    }

    private void updateTrackedIdsLocked() {
        if (mResponses == null || mResponses.size() == 0) {
            return;
        }

        // Only track the views of the last response as only those are reported back to the
        // service, see #showSaveLocked
        final FillResponse response = mResponses.valueAt(getLastResponseIndexLocked());
        final FillResponse response = getLastResponseLocked(null);
        if (response == null) return;

        ArraySet<AutofillId> trackedViews = null;
        boolean saveOnAllViewsInvisible = false;