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

Commit 5e41bb50 authored by seokgyun.hong's avatar seokgyun.hong Committed by Android Build Coastguard Worker
Browse files

Disallow autofill session for visible background users

Currently, autofill service does not fully support visible background users.
Prevent starting autofill sessions for visible background users to avoid issues with their autofill behavior.

Bug: 375500806
Test: manual - check that autofill is not working for a visible background user.
Flag: EXEMPT bugfix
(cherry picked from https://partner-android-review.googlesource.com/q/commit:9489b856d41b15df98a09e2c5e384e041892ade5)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:bc78ceb189e7ec9ce765d83e3dd7f311ccb6de94)
Merged-In: Ibe368d7dd01d62ad5ca3e36ea3dd93e02077d7ad
Change-Id: Ibe368d7dd01d62ad5ca3e36ea3dd93e02077d7ad
parent 15f7f44b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ import com.android.server.autofill.ui.AutoFillUI;
import com.android.server.contentcapture.ContentCaptureManagerInternal;
import com.android.server.infra.AbstractPerUserSystemService;
import com.android.server.inputmethod.InputMethodManagerInternal;
import com.android.server.pm.UserManagerInternal;
import com.android.server.wm.ActivityTaskManagerInternal;

import java.io.PrintWriter;
@@ -192,6 +193,8 @@ final class AutofillManagerServiceImpl

    private final ContentCaptureManagerInternal mContentCaptureManagerInternal;

    private final UserManagerInternal mUserManagerInternal;

    private final DisabledInfoCache mDisabledInfoCache;

    AutofillManagerServiceImpl(AutofillManagerService master, Object lock,
@@ -208,6 +211,7 @@ final class AutofillManagerServiceImpl
        mInputMethodManagerInternal = LocalServices.getService(InputMethodManagerInternal.class);
        mContentCaptureManagerInternal = LocalServices.getService(
                ContentCaptureManagerInternal.class);
        mUserManagerInternal = LocalServices.getService(UserManagerInternal.class);
        mDisabledInfoCache = disableCache;
        updateLocked(disabled);
    }
@@ -379,6 +383,13 @@ final class AutofillManagerServiceImpl
            return 0;
        }

        // TODO(b/376482880): remove this check once autofill service supports visible
        // background users.
        if (mUserManagerInternal.isVisibleBackgroundFullUser(mUserId)) {
            Slog.d(TAG, "Currently, autofill service does not support visible background users.");
            return 0;
        }

        if (!forAugmentedAutofillOnly && isAutofillDisabledLocked(clientActivity)) {
            // Standard autofill is enabled, but service disabled autofill for this activity; that
            // means no session, unless the activity is allowlisted for augmented autofill