summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mohammed Rashidy <rashidy@google.com> 2023-04-05 15:11:59 +0100
committer Mohammed Rashidy <rashidy@google.com> 2023-04-13 17:11:09 +0000
commita7b6be8ad6c7261cc52b8a4b237bd9f285de9c13 (patch)
tree612617217c9ad25552a36dcddae8835b107dd6d9
parent829ec26cf81ce463acee454785ee3e3fa9da5aea (diff)
Remove ActivityRecords for sandbox activities when App/sandbox died
Bug: 277051501 Test: ag/22464148 Change-Id: Ief10f1cab49baa5c3ef99fd061bf46b18bc89baf
-rw-r--r--services/core/java/com/android/server/wm/ActivityRecord.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java
index 76d4925ee703..f5cb613601fe 100644
--- a/services/core/java/com/android/server/wm/ActivityRecord.java
+++ b/services/core/java/com/android/server/wm/ActivityRecord.java
@@ -4144,7 +4144,12 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
*/
void handleAppDied() {
final boolean remove;
- if ((mRelaunchReason == RELAUNCH_REASON_WINDOWING_MODE_RESIZE
+ if (Process.isSdkSandboxUid(getUid())) {
+ // Sandbox activities are created for SDKs run in the sandbox process, when the sandbox
+ // process dies, the SDKs are unloaded and can not handle the activity, so sandbox
+ // activity records should be removed.
+ remove = true;
+ } else if ((mRelaunchReason == RELAUNCH_REASON_WINDOWING_MODE_RESIZE
|| mRelaunchReason == RELAUNCH_REASON_FREE_RESIZE)
&& launchCount < 3 && !finishing) {
// If the process crashed during a resize, always try to relaunch it, unless it has