Merge "Use permission to limit the app to use app's autofill" into udc-dev
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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();
|
||||
mSessionFlags.mClientSuggestionsEnabled =
|
||||
(mFlags & FLAG_ENABLED_CLIENT_SUGGESTIONS) != 0;
|
||||
if (mContext.checkCallingPermission(PROVIDE_OWN_AUTOFILL_SUGGESTIONS)
|
||||
== PackageManager.PERMISSION_GRANTED) {
|
||||
mSessionFlags.mClientSuggestionsEnabled =
|
||||
(mFlags & FLAG_ENABLED_CLIENT_SUGGESTIONS) != 0;
|
||||
}
|
||||
setClientLocked(client);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user