Removes undesirable invokation of checkUriPermission
Slice uses internal permission control, either the provider app can
specify a list of auto-grant permission, or the host app can request
user's consent on presenting slices from the provider app. In both cases
the invokation of checkUriPermission is non-neccessary.
Bug: 140727941
Test: atest SliceManagerServiceTest
Change-Id: Iac808eda08ac188185cd27f7ab8ce13accf7fce4
Merged-In: Iac808eda08ac188185cd27f7ab8ce13accf7fce4
(cherry picked from commit ab9a91fb69)
This commit is contained in:
@@ -251,11 +251,6 @@ public class SliceManagerService extends ISliceManager.Stub {
|
||||
}
|
||||
}
|
||||
}
|
||||
// Fallback to allowing uri permissions through.
|
||||
if (mContext.checkUriPermission(uri, pid, uid, Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
|
||||
== PERMISSION_GRANTED) {
|
||||
return PackageManager.PERMISSION_GRANTED;
|
||||
}
|
||||
return PackageManager.PERMISSION_DENIED;
|
||||
}
|
||||
|
||||
|
||||
@@ -75,7 +75,6 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
|
||||
LocalServices.addService(UsageStatsManagerInternal.class,
|
||||
mock(UsageStatsManagerInternal.class));
|
||||
mContext.addMockSystemService(AppOpsManager.class, mock(AppOpsManager.class));
|
||||
mContext.getTestablePermissions().setPermission(TEST_URI, PERMISSION_GRANTED);
|
||||
|
||||
mContextSpy = spy(mContext);
|
||||
mService = spy(new SliceManagerService(mContextSpy, TestableLooper.get(this).getLooper()));
|
||||
@@ -90,6 +89,7 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
|
||||
|
||||
@Test
|
||||
public void testAddPinCreatesPinned() throws RemoteException {
|
||||
grantSlicePermission();
|
||||
doReturn("pkg").when(mService).getDefaultHome(anyInt());
|
||||
|
||||
mService.pinSlice("pkg", TEST_URI, EMPTY_SPECS, mToken);
|
||||
@@ -99,6 +99,7 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
|
||||
|
||||
@Test
|
||||
public void testRemovePinDestroysPinned() throws RemoteException {
|
||||
grantSlicePermission();
|
||||
doReturn("pkg").when(mService).getDefaultHome(anyInt());
|
||||
|
||||
mService.pinSlice("pkg", TEST_URI, EMPTY_SPECS, mToken);
|
||||
@@ -130,11 +131,13 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
|
||||
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void testNoPinThrow() throws Exception {
|
||||
grantSlicePermission();
|
||||
mService.getPinnedSpecs(TEST_URI, "pkg");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPinnedSpecs() throws Exception {
|
||||
grantSlicePermission();
|
||||
SliceSpec[] specs = new SliceSpec[] {
|
||||
new SliceSpec("Something", 1) };
|
||||
mService.pinSlice("pkg", TEST_URI, specs, mToken);
|
||||
@@ -143,4 +146,10 @@ public class SliceManagerServiceTest extends UiServiceTestCase {
|
||||
assertEquals(specs, mService.getPinnedSpecs(TEST_URI, "pkg"));
|
||||
}
|
||||
|
||||
private void grantSlicePermission() {
|
||||
doReturn(PERMISSION_GRANTED).when(mService).checkSlicePermission(
|
||||
eq(TEST_URI), anyString(), anyString(), anyInt(), anyInt(), any());
|
||||
doReturn(PERMISSION_GRANTED).when(mService).checkAccess(
|
||||
anyString(), eq(TEST_URI), anyInt(), anyInt());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user