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

Commit 18a8bfdd authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "tracesection_api_tracetag" into main

* changes:
  Add trace markers for main Connected Displays CUJs
  Use TRACE_TAG_WINDOW_MANAGER tag in wm/shell
parents e63a549f 80841a13
Loading
Loading
Loading
Loading
+40 −24
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.wm.shell.desktopmode

import android.content.Context
import android.os.Trace
import android.os.UserHandle
import android.os.UserManager
import android.view.Display
@@ -25,6 +26,7 @@ import android.window.DesktopExperienceFlags
import android.window.DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_ACTIVATION_IN_DESKTOP_FIRST_DISPLAYS
import android.window.DesktopModeFlags
import android.window.DisplayAreaInfo
import com.android.app.tracing.traceSection
import com.android.internal.protolog.ProtoLog
import com.android.wm.shell.RootTaskDisplayAreaOrganizer
import com.android.wm.shell.RootTaskDisplayAreaOrganizer.RootTaskDisplayAreaListener
@@ -101,9 +103,16 @@ class DesktopDisplayEventHandler(
        }
    }

    override fun onDisplayAdded(displayId: Int) {
    override fun onDisplayAdded(displayId: Int) =
        traceSection(
            Trace.TRACE_TAG_WINDOW_MANAGER,
            "DesktopDisplayEventHandler#onDisplayAdded: $displayId",
        ) {
            if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
            rootTaskDisplayAreaOrganizer.registerListener(displayId, onDisplayAreaChangeListener)
                rootTaskDisplayAreaOrganizer.registerListener(
                    displayId,
                    onDisplayAreaChangeListener,
                )
            }
            if (displayId != DEFAULT_DISPLAY) {
                desktopDisplayModeController.updateExternalDisplayWindowingMode(displayId)
@@ -120,9 +129,16 @@ class DesktopDisplayEventHandler(
            }
        }

    override fun onDisplayRemoved(displayId: Int) {
    override fun onDisplayRemoved(displayId: Int): Unit =
        traceSection(
            Trace.TRACE_TAG_WINDOW_MANAGER,
            "DesktopDisplayEventHandler#onDisplayRemoved: $displayId",
        ) {
            if (DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) {
            rootTaskDisplayAreaOrganizer.unregisterListener(displayId, onDisplayAreaChangeListener)
                rootTaskDisplayAreaOrganizer.unregisterListener(
                    displayId,
                    onDisplayAreaChangeListener,
                )
            }
            if (displayId != DEFAULT_DISPLAY) {
                desktopDisplayModeController.updateDefaultDisplayWindowingMode()
+63 −57
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import android.os.Bundle
import android.os.Handler
import android.os.IBinder
import android.os.SystemProperties
import android.os.Trace
import android.os.UserHandle
import android.os.UserManager
import android.util.Slog
@@ -82,6 +83,7 @@ import android.window.TransitionInfo.Change
import android.window.TransitionRequestInfo
import android.window.WindowContainerTransaction
import androidx.annotation.BinderThread
import com.android.app.tracing.traceSection
import com.android.internal.annotations.VisibleForTesting
import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG_HOLD
import com.android.internal.jank.Cuj.CUJ_DESKTOP_MODE_ENTER_APP_HANDLE_DRAG_RELEASE
@@ -4169,6 +4171,10 @@ class DesktopTasksController(
        deskId: Int,
        remoteTransition: RemoteTransition? = null,
        taskIdToReorderToFront: Int? = null,
    ) =
        traceSection(
            Trace.TRACE_TAG_WINDOW_MANAGER,
            "DesktopTasksController#activateDesk: $deskId",
        ) {
            logD(
                "activateDesk deskId=%d taskIdToReorderToFront=%d remoteTransition=%s",
+5 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.wm.shell.desktopmode.multidesks

import android.app.ActivityTaskManager.INVALID_TASK_ID
import android.os.IBinder
import android.os.Trace
import android.view.Display.INVALID_DISPLAY
import android.view.WindowManager.TRANSIT_CHANGE
import android.view.WindowManager.TRANSIT_TO_BACK
@@ -67,7 +68,10 @@ class DesksTransitionObserver(
     * observer.
     */
    fun onTransitionReady(transition: IBinder, info: TransitionInfo) =
        traceSection("DesksTransitionObserver#onTransitionReady") {
        traceSection(
            traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
            name = "DesksTransitionObserver#onTransitionReady",
        ) {
            if (!DesktopExperienceFlags.ENABLE_MULTIPLE_DESKTOPS_BACKEND.isTrue) return
            val deskTransitions = deskTransitions.remove(transition)
            deskTransitions?.forEach { deskTransition ->
+15 −6
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED
import android.app.WindowConfiguration.WINDOWING_MODE_FREEFORM
import android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED
import android.app.WindowConfiguration.windowingModeToString
import android.os.Trace
import android.util.SparseArray
import android.view.SurfaceControl
import android.view.WindowManager.TRANSIT_TO_FRONT
@@ -157,9 +158,9 @@ class RootTaskDesksOrganizer(
                .setDisplayId(displayId)
                .setWindowingMode(WINDOWING_MODE_FREEFORM)
                .setRemoveWithTaskOrganizer(true)
                .setReparentOnDisplayRemoval(DesktopExperienceFlags
                    .ENABLE_DISPLAY_DISCONNECT_INTERACTION
                    .isTrue),
                .setReparentOnDisplayRemoval(
                    DesktopExperienceFlags.ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue
                ),
            this,
        )
    }
@@ -208,6 +209,10 @@ class RootTaskDesksOrganizer(
    }

    override fun activateDesk(wct: WindowContainerTransaction, deskId: Int, skipReorder: Boolean) {
        Trace.instant(
            Trace.TRACE_TAG_WINDOW_MANAGER,
            "RootTaskDesksOrganizer#activateDesk: $deskId",
        )
        logV("activateDesk %d", deskId)
        val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" }
        if (!skipReorder) wct.reorder(root.token, /* onTop= */ true)
@@ -220,6 +225,10 @@ class RootTaskDesksOrganizer(
        deskId: Int,
        skipReorder: Boolean,
    ) {
        Trace.instant(
            Trace.TRACE_TAG_WINDOW_MANAGER,
            "RootTaskDesksOrganizer#deactivateDesk: $deskId",
        )
        logV("deactivateDesk %d", deskId)
        val root = checkNotNull(deskRootsByDeskId[deskId]) { "Root not found for desk: $deskId" }
        if (!skipReorder) wct.reorder(root.taskInfo.token, /* onTop= */ false)
@@ -624,9 +633,9 @@ class RootTaskDesksOrganizer(
                .setDisplayId(displayId)
                .setWindowingMode(WINDOWING_MODE_FREEFORM)
                .setRemoveWithTaskOrganizer(true)
                .setReparentOnDisplayRemoval(DesktopExperienceFlags
                    .ENABLE_DISPLAY_DISCONNECT_INTERACTION
                    .isTrue),
                .setReparentOnDisplayRemoval(
                    DesktopExperienceFlags.ENABLE_DISPLAY_DISCONNECT_INTERACTION.isTrue
                ),
            this,
        )
    }
+17 −4
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.graphics.Region
import android.gui.BorderSettings
import android.gui.BoxShadowSettings
import android.os.Handler
import android.os.Trace
import android.view.Display
import android.view.InsetsSource
import android.view.InsetsState
@@ -140,7 +141,10 @@ abstract class WindowDecoration2<T>(
        startT: SurfaceControl.Transaction,
        finishT: SurfaceControl.Transaction,
        wct: WindowContainerTransaction,
    ): RelayoutResult<T>? = traceSection("WindowDecoration2#relayout") {
    ): RelayoutResult<T>? = traceSection(
        traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
        name = "WindowDecoration2#relayout",
    ) {
        taskInfo = params.runningTaskInfo
        hasGlobalFocus = params.hasGlobalFocus
        exclusionRegion.set(params.displayExclusionRegion)
@@ -193,7 +197,10 @@ abstract class WindowDecoration2<T>(
                )
            } else INVALID_SHADOW_RADIUS

        traceSection("WindowDecoration2#relayout-updateSurfacesAndInsets") {
        traceSection(
            traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
            name = "WindowDecoration2#relayout-updateSurfacesAndInsets",
        ) {
            updateDecorationContainerSurface(startT, taskWidth, taskHeight)
            updateTaskSurface(
                params,
@@ -378,7 +385,10 @@ abstract class WindowDecoration2<T>(
    private fun releaseViewsIfNeeded(
        params: RelayoutParams,
        wct: WindowContainerTransaction,
    ) = traceSection("WindowDecoration2#relayout-releaseViewsIfNeeded") {
    ) = traceSection(
        traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
        name = "WindowDecoration2#relayout-releaseViewsIfNeeded",
    ) {
        val windowDecorConfigInitialized = windowDecorConfig != null
        val fontScaleChanged = windowDecorConfig?.fontScale != taskInfo.configuration.fontScale
        val localeListChanged = windowDecorConfig?.locales != taskInfo.getConfiguration().locales
@@ -473,7 +483,10 @@ abstract class WindowDecoration2<T>(
        }
    }

    override fun close() = traceSection("WindowDecoration2#close") {
    override fun close() = traceSection(
        traceTag = Trace.TRACE_TAG_WINDOW_MANAGER,
        name = "WindowDecoration2#close",
    ) {
        displayController.removeDisplayWindowListener(onDisplaysChangedListener)
        taskDragResizer?.close()
        captionController?.close()
Loading