Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6e8c87c authored by Winson Chung's avatar Winson Chung Committed by Android Build Coastguard Worker
Browse files

Use provided calling uid/pid for checking intercept-global-drag flag

- This particular path can not rely on ActivityTaskManagerService's
  enforceTaskPermission() call since that uses the binder calling
  uid/pid, which has been cleared prior to calling
  validateAddingWindowLw().

Bug: 428700812
Flag: EXEMPT bugfix
Test: atest DragDropControllerTests

(cherry picked from commit 467b1858)
Cherrypick-From: https://googleplex-android-review.googlesource.com/q/commit:c33c47731fd942dd54d6cedaa222eadbbade098b
Merged-In: I2c0a71ff36538db376ccb6d99b1e468491dda7af
Change-Id: I2c0a71ff36538db376ccb6d99b1e468491dda7af
parent 739ece18
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1060,7 +1060,9 @@ public class DisplayPolicy {
                    "DisplayPolicy");
        }
        if ((attrs.privateFlags & PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP) != 0) {
            ActivityTaskManagerService.enforceTaskPermission("DisplayPolicy");
            mContext.enforcePermission(
                    android.Manifest.permission.MANAGE_ACTIVITY_TASKS, callingPid, callingUid,
                    "DisplayPolicy");
        }

        switch (attrs.type) {
+2 −1
Original line number Diff line number Diff line
@@ -235,7 +235,8 @@ public class DragDropControllerTests extends WindowTestsBase {
        attrs.privateFlags |= PRIVATE_FLAG_INTERCEPT_GLOBAL_DRAG_AND_DROP;
        policy.validateAddingWindowLw(attrs, Binder.getCallingPid(), Binder.getCallingUid());

        verify(mWm.mAtmService).enforceTaskPermission(any());
        verify(mWm.mContext).enforcePermission(
                eq(android.Manifest.permission.MANAGE_ACTIVITY_TASKS), anyInt(), anyInt(), any());
    }

    @Test