diff options
| author | 2022-11-22 02:36:51 +0000 | |
|---|---|---|
| committer | 2022-11-22 02:36:51 +0000 | |
| commit | 16ba2fdcb6f15faef548495fcf70d8f02b372af7 (patch) | |
| tree | ea9c5a34069814968d0c48e6b48bd8c5cd0960d7 | |
| parent | 172f1c303cf30e5faf8dbbbe56d6c2cee64d22b8 (diff) | |
| parent | 7bd9c8bfb10cb5c37c661b6315ca79ff406bd85b (diff) | |
Merge "[RESTRICT AUTOMERGE] Do not send new Intent to non-exported activity when navigateUpTo" into sc-v2-dev
| -rw-r--r-- | services/core/java/com/android/server/wm/Task.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 93047c1594d2..67a40ac9dfa4 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -5496,7 +5496,23 @@ class Task extends TaskFragment { parentLaunchMode == ActivityInfo.LAUNCH_SINGLE_TASK || parentLaunchMode == ActivityInfo.LAUNCH_SINGLE_TOP || (destIntentFlags & Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) { - parent.deliverNewIntentLocked(callingUid, destIntent, destGrants, srec.packageName); + boolean abort; + try { + abort = !mTaskSupervisor.checkStartAnyActivityPermission(destIntent, + parent.info, null /* resultWho */, -1 /* requestCode */, srec.getPid(), + callingUid, srec.info.packageName, null /* callingFeatureId */, + false /* ignoreTargetSecurity */, false /* launchingInTask */, srec.app, + null /* resultRecord */, null /* resultRootTask */); + } catch (SecurityException e) { + abort = true; + } + if (abort) { + Slog.e(TAG, "Cannot navigateUpTo, intent =" + destIntent); + foundParentInTask = false; + } else { + parent.deliverNewIntentLocked(callingUid, destIntent, destGrants, + srec.packageName); + } } else { try { ActivityInfo aInfo = AppGlobals.getPackageManager().getActivityInfo( |