Loading services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +1 −4 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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) { Loading services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */); Loading @@ -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); Loading Loading
services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +1 −4 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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) { Loading
services/tests/mockingservicestests/src/com/android/server/am/BaseBroadcastQueueTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading
services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueTest.java +3 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */); Loading @@ -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); Loading