Include descriptor in Binder token for AppPredictor
Adding a descriptor in Binder token can help us identifying potential binder proxy leaks in the future. This CL also made the Binder token static. Binder token serves as an indicator of the termination of a process, there's no reason in making multiple Binder token since when the process dies, they all dies. Bug: 240329370 Test: manual Change-Id: I26969395d704aa6518ef9d834951f856d74924b7
This commit is contained in:
@@ -74,7 +74,6 @@ public final class AppPredictor {
|
||||
|
||||
private static final String TAG = AppPredictor.class.getSimpleName();
|
||||
|
||||
|
||||
private final IPredictionManager mPredictionManager;
|
||||
private final CloseGuard mCloseGuard = CloseGuard.get();
|
||||
private final AtomicBoolean mIsClosed = new AtomicBoolean(false);
|
||||
@@ -82,8 +81,6 @@ public final class AppPredictor {
|
||||
private final AppPredictionSessionId mSessionId;
|
||||
private final ArrayMap<Callback, CallbackWrapper> mRegisteredCallbacks = new ArrayMap<>();
|
||||
|
||||
private final IBinder mToken = new Binder();
|
||||
|
||||
/**
|
||||
* Creates a new Prediction client.
|
||||
* <p>
|
||||
@@ -99,7 +96,7 @@ public final class AppPredictor {
|
||||
mSessionId = new AppPredictionSessionId(
|
||||
context.getPackageName() + ":" + UUID.randomUUID().toString(), context.getUserId());
|
||||
try {
|
||||
mPredictionManager.createPredictionSession(predictionContext, mSessionId, mToken);
|
||||
mPredictionManager.createPredictionSession(predictionContext, mSessionId, getToken());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to create predictor", e);
|
||||
e.rethrowAsRuntimeException();
|
||||
@@ -324,4 +321,12 @@ public final class AppPredictor {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class Token {
|
||||
static final IBinder sBinder = new Binder(TAG);
|
||||
}
|
||||
|
||||
private static IBinder getToken() {
|
||||
return Token.sBinder;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,7 +83,6 @@ public final class SmartspaceSession implements AutoCloseable {
|
||||
private final SmartspaceSessionId mSessionId;
|
||||
private final ArrayMap<OnTargetsAvailableListener, CallbackWrapper> mRegisteredCallbacks =
|
||||
new ArrayMap<>();
|
||||
private final IBinder mToken = new Binder();
|
||||
|
||||
/**
|
||||
* Creates a new Smartspace ui client.
|
||||
@@ -101,7 +100,7 @@ public final class SmartspaceSession implements AutoCloseable {
|
||||
mSessionId = new SmartspaceSessionId(
|
||||
context.getPackageName() + ":" + UUID.randomUUID().toString(), context.getUser());
|
||||
try {
|
||||
mInterface.createSmartspaceSession(smartspaceConfig, mSessionId, mToken);
|
||||
mInterface.createSmartspaceSession(smartspaceConfig, mSessionId, getToken());
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to create Smartspace session", e);
|
||||
e.rethrowFromSystemServer();
|
||||
@@ -283,4 +282,12 @@ public final class SmartspaceSession implements AutoCloseable {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class Token {
|
||||
static final IBinder sBinder = new Binder(TAG);
|
||||
}
|
||||
|
||||
private static IBinder getToken() {
|
||||
return Token.sBinder;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user