From a46ff113be1c3f2105c4ebb7dbe2e1390ea6c70c Mon Sep 17 00:00:00 2001 From: Vadim Caen Date: Mon, 31 May 2021 17:20:45 +0200 Subject: Release the SurfacePackageViewHost on splash screen removed The SurfacePackageViewHost was never release, leading to a leak of its surfaces. This CL ensure it is released: - Directly in the shell if the SplashScreenView was not copied - From the client, through the window manger and then to the shell if the splash screen was copied in the client process Test: Manually tested with app setting by checking if the surfaces are actually removed (winscope + logs) in the following scenarios: - When the application registers an OnExitAnimationListener and calls remove(), - When the application registers an OnExitAnimationListener and dies without calling remove() - When the applicaiton does not register an OnExitAnimationListener and the shell removes the splash screen Bug: 189759180 Change-Id: Ib68bfffad6720911368739d7dd87d8a03034c589 --- data/etc/services.core.protolog.json | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'data') diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json index 3c9086dde021..ac5e2d0fcacb 100644 --- a/data/etc/services.core.protolog.json +++ b/data/etc/services.core.protolog.json @@ -961,6 +961,12 @@ "group": "WM_DEBUG_APP_TRANSITIONS", "at": "com\/android\/server\/wm\/AppTransitionController.java" }, + "-1003678883": { + "message": "Cleaning splash screen token=%s", + "level": "VERBOSE", + "group": "WM_DEBUG_STARTING_WINDOW", + "at": "com\/android\/server\/wm\/ActivityRecord.java" + }, "-1003060523": { "message": "Finish needs to pause: %s", "level": "VERBOSE", -- cgit v1.2.3