Return BAL_ALLOW_VISIBLE_WINDOW for bound by fg UID BAL case

When bound by foreground UID and opted-in, we should consider the app as
BAL_ALLOW_VISIBLE_WINDOW, so ASM doesn't block the launch.
Without this change, tests broke. This change got lost during a code
rebase, merge conflict resolving.

Bug: 266716343
Test: atest BackgroundActivityLaunchTest
      testBalOptInBindToService_whenOptedIn_allowsActivityStarts
      testBalOptInBindToService_whenNotOptedInAndSdk33_allowsActivityStart

Change-Id: I41664e814ed0ab1eb38ff833e4ef073e5352b827
This commit is contained in:
Nan Wu
2023-01-25 19:39:38 +00:00
parent f0f201ad06
commit cdd79ecd31
2 changed files with 4 additions and 2 deletions

View File

@@ -86,7 +86,8 @@ public class BackgroundActivityStartController {
/** Apps that fulfill a certain role that can can always launch new tasks */
static final int BAL_ALLOW_ALLOWLISTED_COMPONENT = 3;
/** Apps which currently have a visible window */
/** Apps which currently have a visible window or are bound by a service with a visible
* window */
static final int BAL_ALLOW_VISIBLE_WINDOW = 4;
/** Allowed due to the PendingIntent sender */

View File

@@ -26,6 +26,7 @@ import static com.android.server.wm.ActivityTaskManagerService.APP_SWITCH_FG_ONL
import static com.android.server.wm.BackgroundActivityStartController.BAL_ALLOW_BAL_PERMISSION;
import static com.android.server.wm.BackgroundActivityStartController.BAL_ALLOW_FOREGROUND;
import static com.android.server.wm.BackgroundActivityStartController.BAL_ALLOW_GRACE_PERIOD;
import static com.android.server.wm.BackgroundActivityStartController.BAL_ALLOW_VISIBLE_WINDOW;
import static com.android.server.wm.BackgroundActivityStartController.BAL_BLOCK;
import static java.util.Objects.requireNonNull;
@@ -152,7 +153,7 @@ class BackgroundLaunchProcessController {
Slog.d(TAG, "[Process(" + pid
+ ")] Activity start allowed: process bound by foreground uid");
}
return BAL_ALLOW_FOREGROUND;
return BAL_ALLOW_VISIBLE_WINDOW;
}
// Allow if the flag was explicitly set.
if (isBackgroundStartAllowedByToken(uid, packageName, isCheckingForFgsStart)) {