diff options
| author | 2024-03-13 04:50:29 +0000 | |
|---|---|---|
| committer | 2024-03-13 04:50:29 +0000 | |
| commit | 7ea8687ebbbe8b028cc123d59601cbe8ef9d00ad (patch) | |
| tree | c208732b0a98de02a12516dead0f959c6837bb31 | |
| parent | e2045f15a2d2e0569304e8d99410b8c1930e0d4b (diff) | |
| parent | 29b699869c8237d08b0ddcdc58bcac3baa451c33 (diff) | |
Merge "Attach defer_outgoing_bcasts flag." into main
3 files changed, 6 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java b/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java index 5521381e8908..0a6e9d3198cb 100644 --- a/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +++ b/services/core/java/com/android/server/am/BroadcastQueueModernImpl.java @@ -286,9 +286,6 @@ class BroadcastQueueModernImpl extends BroadcastQueue { // when the flag is fused on. private static final int MSG_DELIVERY_TIMEOUT_SOFT = 8; - // TODO: Use the trunk stable flag. - private static final boolean DEFER_FROZEN_OUTGOING_BCASTS = false; - private void enqueueUpdateRunningList() { mLocalHandler.removeMessages(MSG_UPDATE_RUNNING_LIST); mLocalHandler.sendEmptyMessage(MSG_UPDATE_RUNNING_LIST); @@ -766,7 +763,7 @@ class BroadcastQueueModernImpl extends BroadcastQueue { // TODO: Apply delivery group policies and FLAG_REPLACE_PENDING to collapse the // outgoing broadcasts. // TODO: Add traces/logs for the enqueueing outgoing broadcasts logic. - if (DEFER_FROZEN_OUTGOING_BCASTS && isProcessFreezable(r.callerApp)) { + if (Flags.deferOutgoingBcasts() && isProcessFreezable(r.callerApp)) { final BroadcastProcessQueue queue = getOrCreateProcessQueue( r.callerApp.processName, r.callerApp.uid); if (queue.getOutgoingBroadcastCount() >= mConstants.MAX_FROZEN_OUTGOING_BROADCASTS) { diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java index bd20ae26821e..ce281daf41c4 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java @@ -56,6 +56,7 @@ import com.android.server.wm.ActivityTaskManagerService; import org.junit.Rule; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import java.io.File; @@ -160,6 +161,7 @@ public abstract class BaseBroadcastQueueTest { realAms.mActivityTaskManager = new ActivityTaskManagerService(mContext); realAms.mActivityTaskManager.initialize(null, null, mContext.getMainLooper()); realAms.mAtmInternal = spy(realAms.mActivityTaskManager.getAtmInternal()); + realAms.mOomAdjuster.mCachedAppOptimizer = Mockito.mock(CachedAppOptimizer.class); realAms.mOomAdjuster = spy(realAms.mOomAdjuster); ExtendedMockito.doNothing().when(() -> ProcessList.setOomAdj(anyInt(), anyInt(), anyInt())); realAms.mPackageManagerInt = mPackageManagerInt; diff --git a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java index 66ab8076a217..1172685c4466 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java @@ -86,7 +86,6 @@ import androidx.test.platform.app.InstrumentationRegistry; import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.mockito.ArgumentMatcher; import org.mockito.InOrder; @@ -2335,8 +2334,8 @@ public class BroadcastQueueTest extends BaseBroadcastQueueTest { .isGreaterThan(getReceiverScheduledTime(prioritizedRecord, receiverBlue)); } - @Ignore @Test + @RequiresFlagsEnabled(Flags.FLAG_DEFER_OUTGOING_BCASTS) public void testDeferOutgoingBroadcasts() throws Exception { final ProcessRecord callerApp = makeActiveProcessRecord(PACKAGE_RED); setProcessFreezable(callerApp, true /* pendingFreeze */, false /* frozen */); @@ -2350,6 +2349,8 @@ public class BroadcastQueueTest extends BaseBroadcastQueueTest { makeRegisteredReceiver(receiverGreenApp), makeManifestReceiver(PACKAGE_BLUE, CLASS_BLUE), makeManifestReceiver(PACKAGE_YELLOW, CLASS_YELLOW)))); + // Verify that we invoke the call to freeze the caller app. + verify(mAms.mOomAdjuster.mCachedAppOptimizer).freezeAppAsyncImmediateLSP(callerApp); waitForIdle(); verifyScheduleRegisteredReceiver(never(), receiverGreenApp, timeTick); |