summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hongwei Wang <hwwang@google.com> 2024-05-07 16:39:46 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-05-07 16:39:46 +0000
commit552a5fe6f19838e9a47138b218f51e6f1e35797e (patch)
treeae16385006eb4e60d3a7851689d3847721967f95
parentbb8a66429f2b6e431f12a06d7497ccb2b30bd9ad (diff)
parentc61115e4b9f34c26bb0b994a6d59b500a5c73241 (diff)
Merge "Revert "Rate limiting PiP aspect ratio change request"" into main
-rw-r--r--services/core/java/com/android/server/wm/ActivityClientController.java30
-rw-r--r--services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java6
2 files changed, 0 insertions, 36 deletions
diff --git a/services/core/java/com/android/server/wm/ActivityClientController.java b/services/core/java/com/android/server/wm/ActivityClientController.java
index c5683f31f3e7..fe4522acc148 100644
--- a/services/core/java/com/android/server/wm/ActivityClientController.java
+++ b/services/core/java/com/android/server/wm/ActivityClientController.java
@@ -99,7 +99,6 @@ import android.view.RemoteAnimationDefinition;
import android.window.SizeConfigurationBuckets;
import android.window.TransitionInfo;
-import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.AssistUtils;
import com.android.internal.policy.IKeyguardDismissCallback;
import com.android.internal.protolog.common.ProtoLog;
@@ -109,9 +108,6 @@ import com.android.server.pm.KnownPackages;
import com.android.server.pm.pkg.AndroidPackage;
import com.android.server.uri.GrantUri;
import com.android.server.uri.NeededUriGrants;
-import com.android.server.utils.quota.Categorizer;
-import com.android.server.utils.quota.Category;
-import com.android.server.utils.quota.CountQuotaTracker;
import com.android.server.vr.VrManagerInternal;
/**
@@ -127,13 +123,6 @@ class ActivityClientController extends IActivityClientController.Stub {
private final ActivityTaskSupervisor mTaskSupervisor;
private final Context mContext;
- // Prevent malicious app abusing the Activity#setPictureInPictureParams API
- @VisibleForTesting CountQuotaTracker mSetPipAspectRatioQuotaTracker;
- // Limit to 60 times / minute
- private static final int SET_PIP_ASPECT_RATIO_LIMIT = 60;
- // The timeWindowMs here can not be smaller than QuotaTracker#MIN_WINDOW_SIZE_MS
- private static final long SET_PIP_ASPECT_RATIO_TIME_WINDOW_MS = 60_000;
-
/** Wrapper around VoiceInteractionServiceManager. */
private AssistUtils mAssistUtils;
@@ -1046,25 +1035,6 @@ class ActivityClientController extends IActivityClientController.Stub {
+ ": Current activity does not support picture-in-picture.");
}
- // Rate limit how frequent an app can request aspect ratio change via
- // Activity#setPictureInPictureParams
- final int userId = UserHandle.getCallingUserId();
- if (mSetPipAspectRatioQuotaTracker == null) {
- mSetPipAspectRatioQuotaTracker = new CountQuotaTracker(mContext,
- Categorizer.SINGLE_CATEGORIZER);
- mSetPipAspectRatioQuotaTracker.setCountLimit(Category.SINGLE_CATEGORY,
- SET_PIP_ASPECT_RATIO_LIMIT, SET_PIP_ASPECT_RATIO_TIME_WINDOW_MS);
- }
- if (r.pictureInPictureArgs.hasSetAspectRatio()
- && params.hasSetAspectRatio()
- && !r.pictureInPictureArgs.getAspectRatio().equals(
- params.getAspectRatio())
- && !mSetPipAspectRatioQuotaTracker.noteEvent(
- userId, r.packageName, "setPipAspectRatio")) {
- throw new IllegalStateException(caller
- + ": Too many PiP aspect ratio change requests from " + r.packageName);
- }
-
final float minAspectRatio = mContext.getResources().getFloat(
com.android.internal.R.dimen.config_pictureInPictureMinAspectRatio);
final float maxAspectRatio = mContext.getResources().getFloat(
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java
index fb854c5bda68..43b424fab907 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowOrganizerTests.java
@@ -1235,12 +1235,6 @@ public class WindowOrganizerTests extends WindowTestsBase {
assertNotNull(o.mInfo);
assertNotNull(o.mInfo.pictureInPictureParams);
- // Bypass the quota check, which causes NPE in current test setup.
- if (mWm.mAtmService.mActivityClientController.mSetPipAspectRatioQuotaTracker != null) {
- mWm.mAtmService.mActivityClientController.mSetPipAspectRatioQuotaTracker
- .setEnabled(false);
- }
-
final PictureInPictureParams p2 = new PictureInPictureParams.Builder()
.setAspectRatio(new Rational(3, 4)).build();
mWm.mAtmService.mActivityClientController.setPictureInPictureParams(record.token, p2);