Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bffca45a authored by Winson Chung's avatar Winson Chung
Browse files

Add transition logs for transfering launch cookies

- Useful when debugging issues w/ launch cookies

Bug: 378565144
Flag: EXEMPT adding logs
Test: adb shell wm logging enable-text WM_DEBUG_WINDOW_TRANSITIONS
Change-Id: I2921d9c5b3dc08c1b44f9606a8168cb9bd8b5404
parent 150c48e4
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_T
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_REPORTED_DRAWN_NO_BUNDLE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_REPORTED_DRAWN_WITH_BUNDLE;
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.TYPE_TRANSITION_WARM_LAUNCH;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__LETTERBOX_POSITION__NOT_LETTERBOXED_POSITION;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_ASPECT_RATIO;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_FIXED_ORIENTATION;
@@ -103,6 +104,7 @@ import android.util.TimeUtils;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.protolog.ProtoLog;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.LatencyTracker;
import com.android.internal.util.function.pooled.PooledLambda;
@@ -389,6 +391,14 @@ class ActivityMetricsLogger {
                return;
            }
            if (mLastLaunchedActivity != null) {
                if (mLastLaunchedActivity.mLaunchCookie != null) {
                    ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                            "Transferring launch cookie=%s from=%s(%d) to=%s(%d)",
                            mLastLaunchedActivity.mLaunchCookie,
                            mLastLaunchedActivity.packageName,
                            System.identityHashCode(mLastLaunchedActivity), r.packageName,
                            System.identityHashCode(r));
                }
                // Transfer the launch cookie and launch root task because it is a consecutive
                // launch event.
                r.mLaunchCookie = mLastLaunchedActivity.mLaunchCookie;
+10 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_ORIENTATIO
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STARTING_WINDOW;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_SWITCH;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS_MIN;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_ASPECT_RATIO;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_FIXED_ORIENTATION;
@@ -2138,6 +2139,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            mHandoverLaunchDisplayId = options.getLaunchDisplayId();
            mLaunchCookie = options.getLaunchCookie();
            mLaunchRootTask = options.getLaunchRootTask();
            if (mLaunchCookie != null) {
                ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                        "Activity created with launch cookie=%s act=%s(%d)",
                        mLaunchCookie, packageName, System.identityHashCode(this));
            }
        } else {
            mHasSceneTransition = false;
        }
@@ -4141,6 +4147,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                    r -> r.mLaunchCookie == null && !r.finishing && r.isUid(getUid()),
                    this, false /* includeBoundary */, false /* traverseTopToBottom */);
            if (nextCookieTarget != null) {
                ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                        "Transferring launch cookie=%s on finish from=%s(%d) to=%s(%d)",
                        mLaunchCookie, packageName, System.identityHashCode(this),
                        nextCookieTarget.packageName, System.identityHashCode(nextCookieTarget));
                nextCookieTarget.mLaunchCookie = mLaunchCookie;
                mLaunchCookie = null;
            }
+5 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ import static android.window.TaskFragmentOperation.OP_TYPE_START_ACTIVITY_IN_TAS

import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_CONFIGURATION;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.server.pm.PackageArchiver.isArchivingEnabled;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityTaskManagerDebugConfig.DEBUG_PERMISSIONS_REVIEW;
@@ -3097,6 +3098,10 @@ class ActivityStarter {
        // options if set.
        if (mStartActivity.mLaunchCookie != null) {
            intentActivity.mLaunchCookie = mStartActivity.mLaunchCookie;
            ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                    "Updating launch cookie=%s act=%s(%d)",
                    intentActivity.mLaunchCookie, intentActivity.packageName,
                    System.identityHashCode(intentActivity));
        }
        if (mStartActivity.mPendingRemoteAnimation != null) {
            intentActivity.mPendingRemoteAnimation = mStartActivity.mPendingRemoteAnimation;
+5 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import static android.view.WindowManager.TRANSIT_TO_FRONT;

import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_STATES;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_TASKS;
import static com.android.internal.protolog.WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.PAUSING;
import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
@@ -2842,6 +2843,10 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
                        targetActivity.applyOptionsAnimation();
                        if (activityOptions != null && activityOptions.getLaunchCookie() != null) {
                            targetActivity.mLaunchCookie = activityOptions.getLaunchCookie();
                            ProtoLog.v(WM_DEBUG_WINDOW_TRANSITIONS,
                                    "Updating launch cookie=%s for start from recents act=%s(%d)",
                                    targetActivity.mLaunchCookie, targetActivity.packageName,
                                    System.identityHashCode(targetActivity));
                        }
                    } finally {
                        mActivityMetricsLogger.notifyActivityLaunched(launchingState,