Stop supporting System UID to embed a separate task

Not seeing a strong use case that really needs to have a
separate Task being embedded.

Bug: 211571939
Test: atest TaskFragmentOrganizerPolicyTest
Test: atest SplitActivityLifecycleTest
Test: atest TaskFragmentOrganizerTest
Change-Id: I57537a6a21b0e54762b599fd7d18b3322f6006ea
This commit is contained in:
Louis Chang
2021-12-21 17:35:08 +08:00
parent 18b848e66a
commit 0543b2123d

View File

@@ -2014,22 +2014,12 @@ class ActivityStarter {
private boolean canEmbedActivity(@NonNull TaskFragment taskFragment,
@NonNull ActivityRecord starting, boolean newTask, Task targetTask) {
final Task hostTask = taskFragment.getTask();
if (hostTask == null) {
// Not allowed embedding a separate task or without host task.
if (hostTask == null || newTask || targetTask != hostTask) {
return false;
}
// Allowing the embedding if the task is owned by system.
final int hostUid = hostTask.effectiveUid;
if (UserHandle.getAppId(hostUid) == Process.SYSTEM_UID) {
return true;
}
if (!taskFragment.isAllowedToEmbedActivity(starting)) {
return false;
}
// Not allowed embedding task.
return !newTask && (targetTask == null || targetTask == hostTask);
return taskFragment.isAllowedToEmbedActivity(starting);
}
/**