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

Commit 8c7ba8fe 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:...

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22085782



Change-Id: Id8e2ee8d36c151b39f22785941c60cb02673f7b6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 62a0e127 528f5dbb
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";
@@ -55087,7 +55088,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
@@ -7444,6 +7444,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);
        }