Move add/removeSdkSandboxLifecycleCallback latency logging to
SandboxLatencyInfo
Bug: 287047664
Test: atest SdkSandboxFrameworkUnitTests
SdkSandboxManagerServiceUnitTests; statsd_testdrive 488 to check that
atoms for the moved latency is reported
Change-Id: Icc510fca3b8d9e7de32cdd924939ffb670ab18ed
diff --git a/sdksandbox/framework/java/android/app/sdksandbox/ISdkSandboxManager.aidl b/sdksandbox/framework/java/android/app/sdksandbox/ISdkSandboxManager.aidl
index 378ed2d..b986c4a 100644
--- a/sdksandbox/framework/java/android/app/sdksandbox/ISdkSandboxManager.aidl
+++ b/sdksandbox/framework/java/android/app/sdksandbox/ISdkSandboxManager.aidl
@@ -37,8 +37,8 @@
const String LOAD_SDK = "LOAD_SDK";
const String REQUEST_SURFACE_PACKAGE = "REQUEST_SURFACE_PACKAGE";
- void addSdkSandboxProcessDeathCallback(in String callingPackageName, long timeAppCalledSystemServer, in ISdkSandboxProcessDeathCallback callback);
- void removeSdkSandboxProcessDeathCallback(in String callingPackageName, long timeAppCalledSystemServer, in ISdkSandboxProcessDeathCallback callback);
+ void addSdkSandboxProcessDeathCallback(in String callingPackageName, in SandboxLatencyInfo sandboxLatencyInfo, in ISdkSandboxProcessDeathCallback callback);
+ void removeSdkSandboxProcessDeathCallback(in String callingPackageName, in SandboxLatencyInfo sandboxLatencyInfo, in ISdkSandboxProcessDeathCallback callback);
void registerAppOwnedSdkSandboxInterface(in String callingPackageName, in AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface, in SandboxLatencyInfo sandboxLatencyInfo);
void unregisterAppOwnedSdkSandboxInterface(in String callingPackageName, in String name, in SandboxLatencyInfo sandboxLatencyInfo);
oneway void loadSdk(in String callingPackageName, in IBinder appProcessToken, in String sdkName, in SandboxLatencyInfo sandboxLatencyInfo, in Bundle params, in ILoadSdkCallback callback);
diff --git a/sdksandbox/framework/java/android/app/sdksandbox/SdkSandboxManager.java b/sdksandbox/framework/java/android/app/sdksandbox/SdkSandboxManager.java
index 1960e2e..a5ea194 100644
--- a/sdksandbox/framework/java/android/app/sdksandbox/SdkSandboxManager.java
+++ b/sdksandbox/framework/java/android/app/sdksandbox/SdkSandboxManager.java
@@ -319,11 +319,13 @@
synchronized (mLifecycleCallbacks) {
final SdkSandboxProcessDeathCallbackProxy callbackProxy =
new SdkSandboxProcessDeathCallbackProxy(callbackExecutor, callback);
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo.METHOD_ADD_SDK_SANDBOX_LIFECYCLE_CALLBACK);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(System.currentTimeMillis());
try {
mService.addSdkSandboxProcessDeathCallback(
- mContext.getPackageName(),
- /*timeAppCalledSystemServer=*/ System.currentTimeMillis(),
- callbackProxy);
+ mContext.getPackageName(), sandboxLatencyInfo, callbackProxy);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -348,11 +350,14 @@
final SdkSandboxProcessDeathCallbackProxy callbackProxy =
mLifecycleCallbacks.get(i);
if (callbackProxy.callback == callback) {
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo
+ .METHOD_REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(System.currentTimeMillis());
try {
mService.removeSdkSandboxProcessDeathCallback(
- mContext.getPackageName(),
- /*timeAppCalledSystemServer=*/ System.currentTimeMillis(),
- callbackProxy);
+ mContext.getPackageName(), sandboxLatencyInfo, callbackProxy);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
@@ -374,11 +379,11 @@
*/
public void registerAppOwnedSdkSandboxInterface(
@NonNull AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface) {
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo.METHOD_REGISTER_APP_OWNED_SDK_SANDBOX_INTERFACE);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(mTimeProvider.getCurrentTime());
try {
- SandboxLatencyInfo sandboxLatencyInfo =
- new SandboxLatencyInfo(
- SandboxLatencyInfo.METHOD_REGISTER_APP_OWNED_SDK_SANDBOX_INTERFACE);
- sandboxLatencyInfo.setTimeAppCalledSystemServer(mTimeProvider.getCurrentTime());
mService.registerAppOwnedSdkSandboxInterface(
mContext.getPackageName(), appOwnedSdkSandboxInterface, sandboxLatencyInfo);
} catch (RemoteException e) {
@@ -392,11 +397,11 @@
* @param name the name under which AppOwnedSdkSandboxInterface was registered.
*/
public void unregisterAppOwnedSdkSandboxInterface(@NonNull String name) {
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo.METHOD_UNREGISTER_APP_OWNED_SDK_SANDBOX_INTERFACE);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(mTimeProvider.getCurrentTime());
try {
- SandboxLatencyInfo sandboxLatencyInfo =
- new SandboxLatencyInfo(
- SandboxLatencyInfo.METHOD_UNREGISTER_APP_OWNED_SDK_SANDBOX_INTERFACE);
- sandboxLatencyInfo.setTimeAppCalledSystemServer(mTimeProvider.getCurrentTime());
mService.unregisterAppOwnedSdkSandboxInterface(
mContext.getPackageName(), name, sandboxLatencyInfo);
} catch (RemoteException e) {
@@ -411,11 +416,11 @@
* AppOwnedSdkSandboxInterface}
*/
public @NonNull List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces() {
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo.METHOD_GET_APP_OWNED_SDK_SANDBOX_INTERFACES);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(mTimeProvider.getCurrentTime());
try {
- SandboxLatencyInfo sandboxLatencyInfo =
- new SandboxLatencyInfo(
- SandboxLatencyInfo.METHOD_GET_APP_OWNED_SDK_SANDBOX_INTERFACES);
- sandboxLatencyInfo.setTimeAppCalledSystemServer(mTimeProvider.getCurrentTime());
return mService.getAppOwnedSdkSandboxInterfaces(
mContext.getPackageName(), sandboxLatencyInfo);
} catch (RemoteException e) {
@@ -466,11 +471,11 @@
} else {
appProcessToken = null;
}
+ // TODO(b/297352617): add timeAppCalledSystemServer to the constructor.
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(SandboxLatencyInfo.METHOD_LOAD_SDK);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(System.currentTimeMillis());
try {
- // TODO(b/297352617): add timeAppCalledSystemServer to the constructor.
- SandboxLatencyInfo sandboxLatencyInfo =
- new SandboxLatencyInfo(SandboxLatencyInfo.METHOD_LOAD_SDK);
- sandboxLatencyInfo.setTimeAppCalledSystemServer(System.currentTimeMillis());
mService.loadSdk(
mContext.getPackageName(),
appProcessToken,
@@ -489,10 +494,10 @@
* @return List of {@link SandboxedSdk} containing all currently loaded SDKs.
*/
public @NonNull List<SandboxedSdk> getSandboxedSdks() {
+ SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(SandboxLatencyInfo.METHOD_GET_SANDBOXED_SDKS);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(System.currentTimeMillis());
try {
- SandboxLatencyInfo sandboxLatencyInfo =
- new SandboxLatencyInfo(SandboxLatencyInfo.METHOD_GET_SANDBOXED_SDKS);
- sandboxLatencyInfo.setTimeAppCalledSystemServer(System.currentTimeMillis());
return mService.getSandboxedSdks(mContext.getPackageName(), sandboxLatencyInfo);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
diff --git a/sdksandbox/service/java/com/android/server/sdksandbox/SdkSandboxManagerService.java b/sdksandbox/service/java/com/android/server/sdksandbox/SdkSandboxManagerService.java
index 49592a0..8558e86 100644
--- a/sdksandbox/service/java/com/android/server/sdksandbox/SdkSandboxManagerService.java
+++ b/sdksandbox/service/java/com/android/server/sdksandbox/SdkSandboxManagerService.java
@@ -29,7 +29,6 @@
import static com.android.sdksandbox.service.stats.SdkSandboxStatsLog.SANDBOX_API_CALLED__METHOD__UNLOAD_SDK;
import static com.android.sdksandbox.service.stats.SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__STAGE_UNSPECIFIED;
-import static com.android.sdksandbox.service.stats.SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__SYSTEM_SERVER_APP_TO_SANDBOX;
import static com.android.server.sdksandbox.SdkSandboxStorageManager.StorageDirInfo;
import static com.android.server.wm.ActivityInterceptorCallback.MAINLINE_SDK_SANDBOX_ORDER_ID;
@@ -556,22 +555,11 @@
@Override
public void addSdkSandboxProcessDeathCallback(
String callingPackageName,
- long timeAppCalledSystemServer,
+ SandboxLatencyInfo sandboxLatencyInfo,
ISdkSandboxProcessDeathCallback callback) {
- final long timeSystemServerReceivedCallFromApp = mInjector.getCurrentTime();
+ sandboxLatencyInfo.setTimeSystemServerReceivedCallFromApp(mInjector.getCurrentTime());
- final int callingUid = Binder.getCallingUid();
final CallingInfo callingInfo = CallingInfo.fromBinder(mContext, callingPackageName);
-
- SdkSandboxStatsLog.write(
- SdkSandboxStatsLog.SANDBOX_API_CALLED,
- SdkSandboxStatsLog.SANDBOX_API_CALLED__METHOD__ADD_SDK_SANDBOX_LIFECYCLE_CALLBACK,
- /*latency=*/ (int)
- (timeSystemServerReceivedCallFromApp - timeAppCalledSystemServer),
- /*success=*/ true,
- SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__APP_TO_SYSTEM_SERVER,
- callingUid);
-
synchronized (mLock) {
if (mSandboxLifecycleCallbacks.containsKey(callingInfo)) {
mSandboxLifecycleCallbacks.get(callingInfo).register(callback);
@@ -586,15 +574,8 @@
// addSdkSandboxProcessDeathCallback() can be called without calling loadSdk(). Register for
// app death to make sure cleanup occurs.
registerForAppDeath(callingInfo, callback.asBinder());
-
- SdkSandboxStatsLog.write(
- SdkSandboxStatsLog.SANDBOX_API_CALLED,
- SdkSandboxStatsLog.SANDBOX_API_CALLED__METHOD__ADD_SDK_SANDBOX_LIFECYCLE_CALLBACK,
- /*latency=*/ (int)
- (mInjector.getCurrentTime() - timeSystemServerReceivedCallFromApp),
- /*success=*/ true,
- SANDBOX_API_CALLED__STAGE__SYSTEM_SERVER_APP_TO_SANDBOX,
- callingUid);
+ sandboxLatencyInfo.setTimeSystemServerCalledSandbox(mInjector.getCurrentTime());
+ logLatencies(sandboxLatencyInfo);
}
// Register a handler for app death using any binder object originating from the app. Returns
@@ -623,23 +604,11 @@
@Override
public void removeSdkSandboxProcessDeathCallback(
String callingPackageName,
- long timeAppCalledSystemServer,
+ SandboxLatencyInfo sandboxLatencyInfo,
ISdkSandboxProcessDeathCallback callback) {
- final long timeSystemServerReceivedCallFromApp = mInjector.getCurrentTime();
+ sandboxLatencyInfo.setTimeSystemServerReceivedCallFromApp(mInjector.getCurrentTime());
- final int callingUid = Binder.getCallingUid();
final CallingInfo callingInfo = CallingInfo.fromBinder(mContext, callingPackageName);
-
- SdkSandboxStatsLog.write(
- SdkSandboxStatsLog.SANDBOX_API_CALLED,
- SdkSandboxStatsLog
- .SANDBOX_API_CALLED__METHOD__REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK,
- /*latency=*/ (int)
- (timeSystemServerReceivedCallFromApp - timeAppCalledSystemServer),
- /*success=*/ true,
- SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__APP_TO_SYSTEM_SERVER,
- callingUid);
-
synchronized (mLock) {
RemoteCallbackList<ISdkSandboxProcessDeathCallback> sandboxLifecycleCallbacks =
mSandboxLifecycleCallbacks.get(callingInfo);
@@ -647,15 +616,8 @@
sandboxLifecycleCallbacks.unregister(callback);
}
}
- SdkSandboxStatsLog.write(
- SdkSandboxStatsLog.SANDBOX_API_CALLED,
- SdkSandboxStatsLog
- .SANDBOX_API_CALLED__METHOD__REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK,
- /*latency=*/ (int)
- (mInjector.getCurrentTime() - timeSystemServerReceivedCallFromApp),
- /*success=*/ true,
- SANDBOX_API_CALLED__STAGE__SYSTEM_SERVER_APP_TO_SANDBOX,
- callingUid);
+ sandboxLatencyInfo.setTimeSystemServerCalledSandbox(mInjector.getCurrentTime());
+ logLatencies(sandboxLatencyInfo);
}
@Override
@@ -1429,6 +1391,12 @@
case SandboxLatencyInfo.METHOD_GET_APP_OWNED_SDK_SANDBOX_INTERFACES:
return SdkSandboxStatsLog
.SANDBOX_API_CALLED__METHOD__GET_APP_OWNED_SDK_SANDBOX_INTERFACES;
+ case SandboxLatencyInfo.METHOD_ADD_SDK_SANDBOX_LIFECYCLE_CALLBACK:
+ return SdkSandboxStatsLog
+ .SANDBOX_API_CALLED__METHOD__ADD_SDK_SANDBOX_LIFECYCLE_CALLBACK;
+ case SandboxLatencyInfo.METHOD_REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK:
+ return SdkSandboxStatsLog
+ .SANDBOX_API_CALLED__METHOD__REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK;
default:
return SdkSandboxStatsLog.SANDBOX_API_CALLED__METHOD__METHOD_UNSPECIFIED;
}
diff --git a/sdksandbox/tests/testutils/src/android/app/sdksandbox/testutils/StubSdkSandboxManagerService.java b/sdksandbox/tests/testutils/src/android/app/sdksandbox/testutils/StubSdkSandboxManagerService.java
index 27da3cc..2802715 100644
--- a/sdksandbox/tests/testutils/src/android/app/sdksandbox/testutils/StubSdkSandboxManagerService.java
+++ b/sdksandbox/tests/testutils/src/android/app/sdksandbox/testutils/StubSdkSandboxManagerService.java
@@ -100,13 +100,13 @@
@Override
public void addSdkSandboxProcessDeathCallback(
String callingPackageName,
- long timeAppCalledSystemServer,
+ SandboxLatencyInfo sandboxLatencyInfo,
ISdkSandboxProcessDeathCallback callback) {}
@Override
public void removeSdkSandboxProcessDeathCallback(
String callingPackageName,
- long timeAppCalledSystemServer,
+ SandboxLatencyInfo sandboxLatencyInfo,
ISdkSandboxProcessDeathCallback callback) {}
@Override
diff --git a/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxManagerServiceUnitTest.java b/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxManagerServiceUnitTest.java
index bbc7622..99f4df6 100644
--- a/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxManagerServiceUnitTest.java
+++ b/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxManagerServiceUnitTest.java
@@ -827,7 +827,7 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback);
// Load SDK and start the sandbox
loadSdk(SDK_NAME);
@@ -847,7 +847,7 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback);
killSandbox();
@@ -863,7 +863,7 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback1 =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback1);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback1);
killSandbox();
assertThat(lifecycleCallback1.waitForSandboxDeath()).isTrue();
@@ -873,7 +873,7 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback2 =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback2);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback2);
assertThat(lifecycleCallback2.waitForSandboxDeath()).isFalse();
killSandbox();
assertThat(lifecycleCallback2.waitForSandboxDeath()).isTrue();
@@ -888,13 +888,13 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback1 =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback1);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback1);
// Register for sandbox death event again
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback2 =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback2);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback2);
killSandbox();
@@ -912,17 +912,17 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback1 =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback1);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback1);
// Register for sandbox death event again
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback2 =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback2);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback2);
// Unregister one of the lifecycle callbacks
mService.removeSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback1);
+ TEST_PACKAGE, mSandboxLatencyInfo, lifecycleCallback1);
killSandbox();
diff --git a/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxStatsdMetricsUnitTest.java b/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxStatsdMetricsUnitTest.java
index f345e2d..f53f410 100644
--- a/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxStatsdMetricsUnitTest.java
+++ b/sdksandbox/tests/unittest/src/com/android/server/sdksandbox/SdkSandboxStatsdMetricsUnitTest.java
@@ -1078,16 +1078,21 @@
}
@Test
- public void testLatencyMetrics_ipcFromAppToSystemServer_addSdkSandboxProcessDeathCallback()
- throws Exception {
+ public void testLatencyMetrics_addSdkSandboxProcessDeathCallback() throws Exception {
+ final SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo.METHOD_ADD_SDK_SANDBOX_LIFECYCLE_CALLBACK);
Mockito.when(mInjector.getCurrentTime())
- .thenReturn(TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP);
+ .thenReturn(
+ TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP,
+ TIME_SYSTEM_SERVER_COMPLETED_EXECUTION);
// Register for sandbox death event
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback =
new FakeSdkSandboxProcessDeathCallbackBinder();
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(TIME_APP_CALLED_SYSTEM_SERVER);
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
+ TEST_PACKAGE, sandboxLatencyInfo, lifecycleCallback);
ExtendedMockito.verify(
() ->
@@ -1100,22 +1105,6 @@
/*success=*/ true,
SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__APP_TO_SYSTEM_SERVER,
mClientAppUid));
- }
-
- @Test
- public void testLatencyMetrics_systemServerAppToSandbox_addSdkSandboxProcessDeathCallback()
- throws Exception {
- Mockito.when(mInjector.getCurrentTime())
- .thenReturn(
- TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP,
- TIME_SYSTEM_SERVER_COMPLETED_EXECUTION);
-
- // Register for sandbox death event
- FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback =
- new FakeSdkSandboxProcessDeathCallbackBinder();
- mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
-
ExtendedMockito.verify(
() ->
SdkSandboxStatsLog.write(
@@ -1131,41 +1120,10 @@
}
@Test
- public void testLatencyMetrics_ipcFromAppToSystemServer_removeSdkSandboxProcessDeathCallback() {
- Mockito.when(mInjector.getCurrentTime())
- .thenReturn(
- // for addSdkSandboxLifecycleCallback
- TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP,
- TIME_SYSTEM_SERVER_COMPLETED_EXECUTION,
- // for removeSdkSandboxLifecycleCallback
- TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP);
-
- // Register for sandbox death event again
- FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback =
- new FakeSdkSandboxProcessDeathCallbackBinder();
- mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
-
- // Unregister one of the lifecycle callbacks
- mService.removeSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
-
- ExtendedMockito.verify(
- () ->
- SdkSandboxStatsLog.write(
- SdkSandboxStatsLog.SANDBOX_API_CALLED,
- SANDBOX_API_CALLED__METHOD__REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK,
- (int)
- (TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP
- - TIME_APP_CALLED_SYSTEM_SERVER),
- /*success=*/ true,
- SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__APP_TO_SYSTEM_SERVER,
- mClientAppUid));
- }
-
- @Test
- public void testLatencyMetrics_systemServerAppToSandbox_removeSdkSandboxProcessDeathCallback()
- throws Exception {
+ public void testLatencyMetrics_removeSdkSandboxProcessDeathCallback() {
+ final SandboxLatencyInfo sandboxLatencyInfo =
+ new SandboxLatencyInfo(
+ SandboxLatencyInfo.METHOD_REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK);
Mockito.when(mInjector.getCurrentTime())
.thenReturn(
// for addSdkSandboxLifecycleCallback
@@ -1179,11 +1137,12 @@
FakeSdkSandboxProcessDeathCallbackBinder lifecycleCallback =
new FakeSdkSandboxProcessDeathCallbackBinder();
mService.addSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
+ TEST_PACKAGE, new SandboxLatencyInfo(), lifecycleCallback);
+ sandboxLatencyInfo.setTimeAppCalledSystemServer(TIME_APP_CALLED_SYSTEM_SERVER);
// Unregister one of the lifecycle callbacks
mService.removeSdkSandboxProcessDeathCallback(
- TEST_PACKAGE, TIME_APP_CALLED_SYSTEM_SERVER, lifecycleCallback);
+ TEST_PACKAGE, sandboxLatencyInfo, lifecycleCallback);
ExtendedMockito.verify(
() ->
@@ -1191,6 +1150,17 @@
SdkSandboxStatsLog.SANDBOX_API_CALLED,
SANDBOX_API_CALLED__METHOD__REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK,
(int)
+ (TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP
+ - TIME_APP_CALLED_SYSTEM_SERVER),
+ /*success=*/ true,
+ SdkSandboxStatsLog.SANDBOX_API_CALLED__STAGE__APP_TO_SYSTEM_SERVER,
+ mClientAppUid));
+ ExtendedMockito.verify(
+ () ->
+ SdkSandboxStatsLog.write(
+ SdkSandboxStatsLog.SANDBOX_API_CALLED,
+ SANDBOX_API_CALLED__METHOD__REMOVE_SDK_SANDBOX_LIFECYCLE_CALLBACK,
+ (int)
(TIME_SYSTEM_SERVER_COMPLETED_EXECUTION
- TIME_SYSTEM_SERVER_RECEIVED_CALL_FROM_APP),
/*success=*/ true,