Merge "Clear/restore calling app identity prior to ui launch." into udc-dev

This commit is contained in:
Omer Ozer
2023-03-21 17:29:02 +00:00
committed by Android (Google) Code Review

View File

@@ -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 {
mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent( Binder.withCleanCallingIdentity(() ->
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");