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

Commit 5a63407d authored by TYM Tsai's avatar TYM Tsai Committed by Automerger Merge Worker
Browse files

Merge "Use permission to limit the app to use app's autofill" into udc-dev am: 4ea5e12c

parents d1c65cab 4ea5e12c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -224,6 +224,7 @@ package android {
    field @Deprecated public static final String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY";
    field public static final String POST_NOTIFICATIONS = "android.permission.POST_NOTIFICATIONS";
    field @Deprecated public static final String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS";
    field public static final String PROVIDE_OWN_AUTOFILL_SUGGESTIONS = "android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS";
    field public static final String PROVIDE_REMOTE_CREDENTIALS = "android.permission.PROVIDE_REMOTE_CREDENTIALS";
    field public static final String QUERY_ALL_PACKAGES = "android.permission.QUERY_ALL_PACKAGES";
    field public static final String READ_ASSISTANT_APP_SEARCH_DATA = "android.permission.READ_ASSISTANT_APP_SEARCH_DATA";
@@ -55074,7 +55075,7 @@ package android.view.autofill {
    method public void registerCallback(@Nullable android.view.autofill.AutofillManager.AutofillCallback);
    method public void requestAutofill(@NonNull android.view.View);
    method public void requestAutofill(@NonNull android.view.View, int, @NonNull android.graphics.Rect);
    method public void setAutofillRequestCallback(@NonNull java.util.concurrent.Executor, @NonNull android.view.autofill.AutofillRequestCallback);
    method @RequiresPermission(android.Manifest.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS) public void setAutofillRequestCallback(@NonNull java.util.concurrent.Executor, @NonNull android.view.autofill.AutofillRequestCallback);
    method public void setUserData(@Nullable android.service.autofill.UserData);
    method public boolean showAutofillDialog(@NonNull android.view.View);
    method public boolean showAutofillDialog(@NonNull android.view.View, int);
+8 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package android.view.autofill;

import static android.Manifest.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS;
import static android.service.autofill.FillRequest.FLAG_IME_SHOWING;
import static android.service.autofill.FillRequest.FLAG_MANUAL_REQUEST;
import static android.service.autofill.FillRequest.FLAG_PASSWORD_INPUT_TYPE;
@@ -34,6 +35,7 @@ import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresFeature;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi;
import android.annotation.SystemService;
import android.annotation.TestApi;
@@ -2223,8 +2225,14 @@ public final class AutofillManager {
     * @param executor specifies the thread upon which the callbacks will be invoked.
     * @param callback which handles autofill request to provide client's suggestions.
     */
    @RequiresPermission(PROVIDE_OWN_AUTOFILL_SUGGESTIONS)
    public void setAutofillRequestCallback(@NonNull @CallbackExecutor Executor executor,
            @NonNull AutofillRequestCallback callback) {
        if (mContext.checkSelfPermission(PROVIDE_OWN_AUTOFILL_SUGGESTIONS)
                != PackageManager.PERMISSION_GRANTED) {
            throw new SecurityException("Requires USE_APP_AUTOFILL permission!");
        }

        synchronized (mLock) {
            mRequestCallbackExecutor = executor;
            mAutofillRequestCallback = callback;
+7 −0
Original line number Diff line number Diff line
@@ -7435,6 +7435,13 @@
    <permission android:name="android.permission.EXECUTE_APP_ACTION"
                android:protectionLevel="internal|role" />

    <!-- Allows an application to display its suggestions using the autofill framework.
         <p>For now, this permission is only granted to the Browser application.
         <p>Protection level: internal|role
    -->
    <permission android:name="android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS"
                android:protectionLevel="internal|role" />

    <!-- @SystemApi Allows an application to create virtual devices in VirtualDeviceManager.
         @hide -->
    <permission android:name="android.permission.CREATE_VIRTUAL_DEVICE"
+7 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.autofill;

import static android.Manifest.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS;
import static android.service.autofill.AutofillFieldClassificationService.EXTRA_SCORES;
import static android.service.autofill.AutofillService.EXTRA_FILL_RESPONSE;
import static android.service.autofill.FillEventHistory.Event.UI_TYPE_DIALOG;
@@ -72,6 +73,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ServiceInfo;
import android.graphics.Bitmap;
import android.graphics.Rect;
@@ -1286,8 +1288,11 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
            mSessionFlags = new SessionFlags();
            mSessionFlags.mAugmentedAutofillOnly = forAugmentedAutofillOnly;
            mSessionFlags.mInlineSupportedByService = mService.isInlineSuggestionsEnabledLocked();
            if (mContext.checkCallingPermission(PROVIDE_OWN_AUTOFILL_SUGGESTIONS)
                    == PackageManager.PERMISSION_GRANTED) {
                mSessionFlags.mClientSuggestionsEnabled =
                        (mFlags & FLAG_ENABLED_CLIENT_SUGGESTIONS) != 0;
            }
            setClientLocked(client);
        }