Merge "Clear/restore calling app identity prior to ui launch." into udc-dev
This commit is contained in:
@@ -27,6 +27,7 @@ import android.credentials.GetCredentialResponse;
|
|||||||
import android.credentials.IGetCredentialCallback;
|
import android.credentials.IGetCredentialCallback;
|
||||||
import android.credentials.ui.ProviderData;
|
import android.credentials.ui.ProviderData;
|
||||||
import android.credentials.ui.RequestInfo;
|
import android.credentials.ui.RequestInfo;
|
||||||
|
import android.os.Binder;
|
||||||
import android.os.CancellationSignal;
|
import android.os.CancellationSignal;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.service.credentials.CallingAppInfo;
|
import android.service.credentials.CallingAppInfo;
|
||||||
@@ -84,11 +85,12 @@ public class GetRequestSession extends RequestSession<GetCredentialRequest,
|
|||||||
protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) {
|
protected void launchUiWithProviderData(ArrayList<ProviderData> providerDataList) {
|
||||||
mChosenProviderFinalPhaseMetric.setUiCallStartTimeNanoseconds(System.nanoTime());
|
mChosenProviderFinalPhaseMetric.setUiCallStartTimeNanoseconds(System.nanoTime());
|
||||||
try {
|
try {
|
||||||
|
Binder.withCleanCallingIdentity(() ->
|
||||||
mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent(
|
mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent(
|
||||||
RequestInfo.newGetRequestInfo(
|
RequestInfo.newGetRequestInfo(
|
||||||
mRequestId, mClientRequest, mClientAppInfo.getPackageName()),
|
mRequestId, mClientRequest, mClientAppInfo.getPackageName()),
|
||||||
providerDataList));
|
providerDataList)));
|
||||||
} catch (RemoteException e) {
|
} catch (RuntimeException e) {
|
||||||
mChosenProviderFinalPhaseMetric.setUiReturned(false);
|
mChosenProviderFinalPhaseMetric.setUiReturned(false);
|
||||||
respondToClientWithErrorAndFinish(
|
respondToClientWithErrorAndFinish(
|
||||||
GetCredentialException.TYPE_UNKNOWN, "Unable to instantiate selector");
|
GetCredentialException.TYPE_UNKNOWN, "Unable to instantiate selector");
|
||||||
|
|||||||
Reference in New Issue
Block a user