From 76d81231f4c9d6719276d1bc9d06d9401def936e Mon Sep 17 00:00:00 2001 From: Winson Date: Wed, 14 Apr 2021 12:27:45 -0700 Subject: [PATCH] Update getOwnersForDomain docs and enforce non-null Forgot the docs update part of the feedback. Also enforces the param non-nullablility. Bug: 184891031 Test: atest DomainVerificationManagerApiTest Change-Id: I4c90f69bc38c9760a76555ee8c8ad121cac997b6 --- .../pm/verify/domain/DomainVerificationManager.java | 8 ++++++-- .../domain/DomainVerificationManagerStub.java | 2 ++ .../pm/verify/domain/DomainVerificationService.java | 1 + .../verify/domain/DomainVerificationJavaUtil.java | 13 +++++++++++++ .../domain/DomainVerificationManagerApiTest.kt | 13 +++++++++++-- 5 files changed, 33 insertions(+), 4 deletions(-) diff --git a/core/java/android/content/pm/verify/domain/DomainVerificationManager.java b/core/java/android/content/pm/verify/domain/DomainVerificationManager.java index adc668f8fa022..77bd14756637a 100644 --- a/core/java/android/content/pm/verify/domain/DomainVerificationManager.java +++ b/core/java/android/content/pm/verify/domain/DomainVerificationManager.java @@ -32,7 +32,9 @@ import android.os.UserHandle; import com.android.internal.util.CollectionUtils; +import java.util.Comparator; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -350,6 +352,8 @@ public final class DomainVerificationManager { * * The set will be ordered from lowest to highest priority. * + * @param domain The host to query for. An invalid domain will result in an empty set. + * * @hide */ @SystemApi @@ -357,11 +361,11 @@ public final class DomainVerificationManager { @RequiresPermission(android.Manifest.permission.UPDATE_DOMAIN_VERIFICATION_USER_SELECTION) public SortedSet getOwnersForDomain(@NonNull String domain) { try { + Objects.requireNonNull(domain); final List orderedList = mDomainVerificationManager.getOwnersForDomain( domain, mContext.getUserId()); SortedSet set = new TreeSet<>( - (first, second) -> Integer.compare(orderedList.indexOf(first), - orderedList.indexOf(second))); + Comparator.comparingInt(orderedList::indexOf)); set.addAll(orderedList); return set; } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationManagerStub.java b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationManagerStub.java index 2a17c6d4cec52..3f00a9d999aa8 100644 --- a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationManagerStub.java +++ b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationManagerStub.java @@ -29,6 +29,7 @@ import android.content.pm.verify.domain.IDomainVerificationManager; import android.os.ServiceSpecificException; import java.util.List; +import java.util.Objects; import java.util.UUID; public class DomainVerificationManagerStub extends IDomainVerificationManager.Stub { @@ -110,6 +111,7 @@ public class DomainVerificationManagerStub extends IDomainVerificationManager.St public List getOwnersForDomain(@NonNull String domain, @UserIdInt int userId) { try { + Objects.requireNonNull(domain); return mService.getOwnersForDomain(domain, userId); } catch (Exception e) { throw rethrow(e); diff --git a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java index 4ae79a209524f..f0fdad016d557 100644 --- a/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java +++ b/services/core/java/com/android/server/pm/verify/domain/DomainVerificationService.java @@ -742,6 +742,7 @@ public class DomainVerificationService extends SystemService } public List getOwnersForDomain(@NonNull String domain, @UserIdInt int userId) { + Objects.requireNonNull(domain); mEnforcer.assertOwnerQuerent(mConnection.getCallingUid(), mConnection.getCallingUserId(), userId); diff --git a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationJavaUtil.java b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationJavaUtil.java index 14c02d53efad7..0a5a3bff3676c 100644 --- a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationJavaUtil.java +++ b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationJavaUtil.java @@ -20,11 +20,14 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.content.pm.PackageManager; +import android.content.pm.verify.domain.DomainOwner; import android.content.pm.verify.domain.DomainVerificationManager; import com.android.server.pm.verify.domain.DomainVerificationService; +import java.util.List; import java.util.Set; +import java.util.SortedSet; import java.util.UUID; /** @@ -58,4 +61,14 @@ class DomainVerificationJavaUtil { throws PackageManager.NameNotFoundException { return manager.setDomainVerificationUserSelection(domainSetId, domains, enabled); } + + static SortedSet getOwnersForDomain(@NonNull DomainVerificationManager manager, + @Nullable String domain) { + return manager.getOwnersForDomain(domain); + } + + static List getOwnersForDomain(@NonNull DomainVerificationService service, + @Nullable String domain, @UserIdInt int userId) { + return service.getOwnersForDomain(domain, userId); + } } diff --git a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationManagerApiTest.kt b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationManagerApiTest.kt index 7fea4ee423171..3838f68fcf227 100644 --- a/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationManagerApiTest.kt +++ b/services/tests/PackageManagerServiceTests/unit/src/com/android/server/pm/test/verify/domain/DomainVerificationManagerApiTest.kt @@ -292,8 +292,17 @@ class DomainVerificationManagerApiTest { val manager0 = makeManager(service, 0) val manager1 = makeManager(service, 1) - assertThat(service.getOwnersForDomain(DOMAIN_1, 0)).isEmpty() - assertThat(manager0.getOwnersForDomain(DOMAIN_1)).isEmpty() + listOf(DOMAIN_1, "").forEach { + assertThat(service.getOwnersForDomain(it, 0)).isEmpty() + assertThat(manager0.getOwnersForDomain(it)).isEmpty() + } + + assertFailsWith(NullPointerException::class) { + DomainVerificationJavaUtil.getOwnersForDomain(service, null, 0) + } + assertFailsWith(NullPointerException::class) { + DomainVerificationJavaUtil.getOwnersForDomain(manager0, null) + } assertThat( service.setStatus(