summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
author Richard MacGregor <rmacgregor@google.com> 2024-12-06 14:18:36 -0800
committer Richard MacGregor <rmacgregor@google.com> 2024-12-09 17:46:06 +0000
commita6309910d9aecffda8794f68ec899f881d5de85d (patch)
treec58c005d0d798f0af82642abc92f93053ac331b3 /service
parenteb90cd06b2852be0b24dc6a2c5569ca10de72bc3 (diff)
Add traces for RoleService
Add traces for RoleService onUserStarting(), getActiveUserForRoleAsUser() and setActiveUserForRoleAsUser() LOW_COVERAGE_REASON=FLAG_NOT_ENABLED Relnote: N/A Test: manual Bug: 369438477 Flag: EXEMPT log only update Change-Id: I94009e94c15950787eccbfc474e286aeb80f2c00
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/role/RoleService.java77
1 files changed, 47 insertions, 30 deletions
diff --git a/service/java/com/android/role/RoleService.java b/service/java/com/android/role/RoleService.java
index f6c9fc6b6..0fea33899 100644
--- a/service/java/com/android/role/RoleService.java
+++ b/service/java/com/android/role/RoleService.java
@@ -45,6 +45,7 @@ import android.os.ParcelFileDescriptor;
import android.os.RemoteCallback;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
+import android.os.Trace;
import android.os.UserHandle;
import android.os.UserManager;
import android.permission.flags.Flags;
@@ -103,6 +104,7 @@ import java.util.concurrent.TimeoutException;
@RequiresApi(Build.VERSION_CODES.S)
public class RoleService extends SystemService implements RoleUserState.Callback {
private static final String LOG_TAG = RoleService.class.getSimpleName();
+ private static final String TRACE_TAG = RoleService.class.getSimpleName();
private static final boolean DEBUG = false;
@@ -295,11 +297,16 @@ public class RoleService extends SystemService implements RoleUserState.Callback
@Override
public void onUserStarting(@NonNull TargetUser user) {
- if (SdkLevel.isAtLeastV() && Flags.systemServerRoleControllerEnabled()) {
- upgradeLegacyFallbackEnabledRolesIfNeeded(user);
- }
+ Trace.beginSection(TRACE_TAG + "_onUserStarting");
+ try {
+ if (SdkLevel.isAtLeastV() && Flags.systemServerRoleControllerEnabled()) {
+ upgradeLegacyFallbackEnabledRolesIfNeeded(user);
+ }
- maybeGrantDefaultRolesSync(user.getUserHandle().getIdentifier());
+ maybeGrantDefaultRolesSync(user.getUserHandle().getIdentifier());
+ } finally {
+ Trace.endSection();
+ }
}
private void upgradeLegacyFallbackEnabledRolesIfNeeded(@NonNull TargetUser user) {
@@ -762,40 +769,50 @@ public class RoleService extends SystemService implements RoleUserState.Callback
@Override
public int getActiveUserForRoleAsUser(@NonNull String roleName, @UserIdInt int userId) {
- Preconditions.checkState(RoleFlags.isProfileGroupExclusivityAvailable(),
- "getActiveUserForRoleAsUser not available");
- enforceProfileGroupExclusiveRole(roleName);
-
- UserUtils.enforceCrossUserPermission(userId, /* allowAll= */ false,
- /* enforceForProfileGroup= */ true, "getActiveUserForRole", getContext());
- if (!UserUtils.isUserExistent(userId, getContext())) {
- Log.e(LOG_TAG, "user " + userId + " does not exist");
- return UserHandleCompat.USER_NULL;
- }
+ Trace.beginSection(TRACE_TAG + "_getActiveUserForRoleAsUser");
+ try {
+ Preconditions.checkState(RoleFlags.isProfileGroupExclusivityAvailable(),
+ "getActiveUserForRoleAsUser not available");
+ enforceProfileGroupExclusiveRole(roleName);
+
+ UserUtils.enforceCrossUserPermission(userId, /* allowAll= */ false,
+ /* enforceForProfileGroup= */ true, "getActiveUserForRole", getContext());
+ if (!UserUtils.isUserExistent(userId, getContext())) {
+ Log.e(LOG_TAG, "user " + userId + " does not exist");
+ return UserHandleCompat.USER_NULL;
+ }
- enforceCallingOrSelfAnyPermissions(new String[] {
- Manifest.permission.MANAGE_DEFAULT_APPLICATIONS,
- Manifest.permission.MANAGE_ROLE_HOLDERS
- }, "getActiveUserForRole");
+ enforceCallingOrSelfAnyPermissions(new String[] {
+ Manifest.permission.MANAGE_DEFAULT_APPLICATIONS,
+ Manifest.permission.MANAGE_ROLE_HOLDERS
+ }, "getActiveUserForRole");
- int profileParentId = UserUtils.getProfileParentIdOrSelf(userId, getContext());
- RoleUserState userState = getOrCreateUserState(profileParentId);
- return userState.getActiveUserForRole(roleName);
+ int profileParentId = UserUtils.getProfileParentIdOrSelf(userId, getContext());
+ RoleUserState userState = getOrCreateUserState(profileParentId);
+ return userState.getActiveUserForRole(roleName);
+ } finally {
+ Trace.endSection();
+ }
}
@Override
public void setActiveUserForRoleAsUser(@NonNull String roleName,
@UserIdInt int activeUserId, @RoleManager.ManageHoldersFlags int flags,
@UserIdInt int userId) {
- Preconditions.checkState(RoleFlags.isProfileGroupExclusivityAvailable(),
- "setActiveUserForRoleAsUser not available");
- UserUtils.enforceCrossUserPermission(userId, /* allowAll= */ false,
- /* enforceForProfileGroup= */ true, "setActiveUserForRole", getContext());
- enforceCallingOrSelfAnyPermissions(new String[] {
- Manifest.permission.MANAGE_DEFAULT_APPLICATIONS,
- Manifest.permission.MANAGE_ROLE_HOLDERS
- }, "setActiveUserForRoleAsUser");
- setActiveUserForRoleAsUserInternal(roleName, activeUserId, flags, true, userId);
+ Trace.beginSection(TRACE_TAG + "_setActiveUserForRoleAsUser");
+ try {
+ Preconditions.checkState(RoleFlags.isProfileGroupExclusivityAvailable(),
+ "setActiveUserForRoleAsUser not available");
+ UserUtils.enforceCrossUserPermission(userId, /* allowAll= */ false,
+ /* enforceForProfileGroup= */ true, "setActiveUserForRole", getContext());
+ enforceCallingOrSelfAnyPermissions(new String[] {
+ Manifest.permission.MANAGE_DEFAULT_APPLICATIONS,
+ Manifest.permission.MANAGE_ROLE_HOLDERS
+ }, "setActiveUserForRoleAsUser");
+ setActiveUserForRoleAsUserInternal(roleName, activeUserId, flags, true, userId);
+ } finally {
+ Trace.endSection();
+ }
}
@Override